Как бы я хотел получить пересечения «вертикальной» линии, которая имеет только координаты x, y, параллельные оси z и треугольник точек v0, v1, v2?Ось-выровненная линия пересекает треугольник
Заранее спасибо
Как бы я хотел получить пересечения «вертикальной» линии, которая имеет только координаты x, y, параллельные оси z и треугольник точек v0, v1, v2?Ось-выровненная линия пересекает треугольник
Заранее спасибо
Поскольку Z постоянна вдоль вашей линии, вы можете игнорировать значение Z ваших точек. Таким образом, ваша проблема эквивалентна проверке, находится ли точка (x, y) (строка) внутри треугольника v0, v1, v2, беря только их значения (x, y).
Проверка, если точка находится внутри треугольника должна быть довольно легко ...
Существует документ, описывающий способ решить эту проблему, используя барицентрические координаты: Moller, Trumbore - Fast, Minimum Storage Ray/Triangle Intersection. Они также имеют реализацию в C.
Кроме того, этот алгоритм является основой почти всех алгоритмов трассировки лучей, поэтому я думаю, что вы можете найти его хорошую реализацию в области компьютерной графики.
Это все хорошо и хорошо, но тогда я хочу точку пересечения в 3D-пространстве. –
Вы можете использовать вершины треугольника для определения плоского уравнения треугольника, вставить x и y и решить для z. – Sneftel