Триангуляция плоского 2D вогнутого многоугольника в трехмерном пространстве - Помогите проверить вогнутость?
У меня есть набор 3d точек, которые образуют 2d многоугольник. Они упорядочены по часовой стрелке или против часовой стрелки (один или другой, но я не знаю, который заранее).
Теперь я хочу сделать триангуляцию, что я и пытаюсь сделать, используя подход к стрижке ушей. Проблема в том, что для того, чтобы алгоритм работал, мне нужно проверить, является ли данный угол вогнутым или нет.
В двухмерном пространстве и по часовой стрелке вы можете использовать перекрестное произведение и видеть направление полученной стрелки, чтобы узнать, является ли угол вогнутым (поскольку вы фактически проверяете, поворачивается ли он влево или вправо). Однако, не зная, находятся ли мои точки по часовой стрелке или против часовой стрелки, и не зная нормали плоскости, я понятия не имею, как подойти к проблеме.
Есть несколько похожих вопросов, таких как этот, но они предполагают 2-мерное пространство, что облегчает задачу.
1 ответ
Сначала необходимо спроецировать все точки на плоскость XY, выполнить триангуляцию, а затем соединить треугольники с исходными трехмерными точками. Чтобы перейти от 3D к 2D, вам нужно преобразовать кадр в кадр. Исходный кадр будет вычислен из наиболее подходящих трех вершин (начало координат, ось x и ось y) исходного контура.