2013-12-07 6 views

ответ

4

Поскольку Z постоянна вдоль вашей линии, вы можете игнорировать значение Z ваших точек. Таким образом, ваша проблема эквивалентна проверке, находится ли точка (x, y) (строка) внутри треугольника v0, v1, v2, беря только их значения (x, y).

Проверка, если точка находится внутри треугольника должна быть довольно легко ...

+0

Это все хорошо и хорошо, но тогда я хочу точку пересечения в 3D-пространстве. –

+2

Вы можете использовать вершины треугольника для определения плоского уравнения треугольника, вставить x и y и решить для z. – Sneftel

0

Существует документ, описывающий способ решить эту проблему, используя барицентрические координаты: Moller, Trumbore - Fast, Minimum Storage Ray/Triangle Intersection. Они также имеют реализацию в C.

Кроме того, этот алгоритм является основой почти всех алгоритмов трассировки лучей, поэтому я думаю, что вы можете найти его хорошую реализацию в области компьютерной графики.

Смежные вопросы