2016-07-31 2 views
2

Каково название этого процесса: Построение многогранника из известных двумерных граней (например, треугольников), имеющих данные о соединении для их вершин?Построить многогранник с известными грани

Проще говоря, если у меня есть все части 3D, и я знаю, какие углы должны подключаться к ним, каков процесс, используемый для вычисления 3D-объекта, после которого все они связаны?

Кроме того, существует ли общепринятый алгоритм или хорошая отправная точка для этого исследования?

EDIT: Я думаю, что я говорю о триангуляции, но я не хочу генерировать полигоны, я уже знаю их. Границы должны быть расположены в 3 размерах, чтобы они соответствовали соответствующим требованиям.

+0

Вы имеете в виду, что вы знаете форму всех лиц, но не так, как они соотносятся друг с другом? Как разрисованная модель бумаги? –

+0

Сортировка; У меня есть все лица и информация, чтобы соединить их точки вместе, когда они являются трехмерной фигурой, правильно собраны, но у меня нет их позиций или поворотов для их трехмерной формы. Представьте, что фигуры трехмерной формы сплющены на листе бумаги и струны, соединяющих все их трогательные углы.Что происходит, когда струны затягиваются - предполагая, что лица возвращаются в исходное положение, а также соединения. –

+0

Теперь понятно. –

ответ

0

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

Один пример: here.

0

Я не знаю классическим способом, чтобы достичь этого, но я думаю, что вы можете работать это так:

  • выбрать начальное лицо и считать его в плоскости XY, с одна вершина в начале координат и край, исходящий от нее вдоль оси X. Этого достаточно, чтобы зафиксировать абсолютное положение многогранника.

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

  • Это позволяет определить матрицу преобразования с одной стороны (с выделенной вершиной и выделенным краем) на другую.

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

  • , объединив преобразования, вы в конечном итоге превратите все локальные значения координат в глобальные.

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

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

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