застрявшая программа создания, которая находит общую конечную точку из 2-х 3-х линейных отрезков, учитывая их происхождение и длину - PullRequest
0 голосов
/ 28 января 2020

Таким образом, цель состоит в том, чтобы ориентировать 2 отрезка линии, чтобы найти общие конечные точки с заданным началом и длиной, также есть указание направления, которое указывает вам общее направление, в котором вы находитесь, если вы получите более 1 ответа, тогда мы следует выбрать самый дальний в направлении подсказки. Я посмотрел на многие ресурсы и изучил математику, и я просто не понимаю. Поэтому мне нужна помощь в создании программы на С ++, чтобы заставить эту функцию работать. Вот код:

struct vector3d 
{
    float x;
    float y;
    float z;
};

typedef vector3d point3d;

bool intersect_line_segments(
    point3d position_0,         // origin of first line segment.
    float length_0,         // length of first line segment.
    point3d position_1,         // origin of second line segment.
    float length_1,         // length of second line segment.
    vector3d hint_direction,        // in the event there are multiple solutions, return the
                        // one furthest in this direction.
    point3d *out_common_end_position)   // if result is true, point where both line segments can be
                        // oriented to end. otherwise uninitialized.
{
    // your code here
}

Вот пример:

point3d common_end_position;
bool result= intersect_line_segments(
    {0, 0, 0},              // position_0
    2.0,                    // length_0
    {2, 0, 0},              // position_1
    2.0,                    // length_1
    {0, 0, 1},              // hint_direction
    &common_end_position);          // out_common_end_position

… would return:

result = true
common_end_position = {1, 0, 1.7321}

Вот ссылка на мой последний пост об этом и всей полезной информации, которую мне дали, но из-за моего Непонимание не может перевести его на код: Предыдущий пост

...