Я не уверен, что это правильное место, чтобы спросить, но здесь идет ...
Короткая версия: Я пытаюсь вычислить ориентацию треугольника на плоскости, образованной пересечением 3 ребер, без явного вычисления точек пересечения.
Длинная версия: Мне нужно триангулировать PSLG по треугольнику в 3D. Вершины PSLG определяются пересечениями отрезков с плоскостью, проходящей через треугольник, и гарантированно лежат внутри треугольника. Предполагая, что у меня есть точки пересечения, я могу проецировать в 2D и использовать тест на стороне линии точки (или области со знаком треугольника), чтобы определить ориентацию треугольника между любыми 3 точками пересечения.
Проблема в том, что я не могу явно вычислить точки пересечения из-за ошибки с плавающей запятой, которая накапливается, когда я нахожу пересечение прямой плоскости. Чтобы выяснить, попадают ли отрезки в первую очередь в треугольник, я использую несколько свободно доступных надежных геометрических предикатов, которые дают знак объема тетраэдра или, что эквивалентно, на какой стороне плоскости лежит точка. Я могу определить, находятся ли конечные точки отрезка на противоположных сторонах плоскости через треугольник, затем сформировать тетраэдры между отрезком и каждым ребром треугольника, чтобы определить, находится ли точка пересечения внутри треугольника.
Так как я не могу явно вычислить точки пересечения, мне интересно, есть ли способ выразить то же самое вычисление 2D-ориентации в 3D, используя только исходные точки. Если есть три ребра, ударяющие по треугольнику, это дает мне 9 очков для игры. Предполагая, что то, что я спрашиваю, даже возможно (используя только трехмерные ориентирующие тесты), тогда я предполагаю, что мне нужно сформировать некоторое подмножество всех возможных тетраэдров между этими 9 точками. Мне трудно даже визуализировать это, не говоря уже о том, чтобы перевести его в формулу или код. Я даже не могу найти это в Google, потому что я не знаю, какой может быть стандартная терминология отрасли для такого рода проблем.
Есть идеи, как поступить с этим? Благодарю. Возможно, мне стоит спросить и MathOverflow ...
РЕДАКТИРОВАТЬ: После прочтения некоторых комментариев, одна вещь, которая приходит мне в голову ... Возможно, если бы я мог поместить непересекающиеся тетраэдры между 3 отрезками линии, то ориентация любого из тех, которые пересекли плоскость будет ответ, который я ищу. Кроме случаев, когда края окружают простую треугольную призму, я не уверен, что эта подзадача также разрешима.
РЕДАКТИРОВАТЬ: Запрошенное изображение.