2008-12-05 3 views
4

У меня есть 3D-поверхность (например, конус). Он проецируется на 2D-план в виде контура, что означает, что разные Z будут иметь разные линии на 2D-плане. Проблема заключается в контуре, как восстановить 3D-поверхность с помощью интерполяции? Мы знаем только о разности z между различными контурными линиями.3D-поверхность Алгоритм восстановления

ответ

7

Технический термин для «контуров», который вы упомянули, это «изо-линии».
Учитывая набор изо-линий, вам сначала нужно построить облако точек в 3D (просто набор точек в 3D-пространстве). Вы делаете это в два этапа. сначала путем выборки каждой изо-линии с равномерными интервалами, вы получаете двумерные точки, а затем поднимаете точки на соответствующую высоту.
Выборка линии с равномерными интервалами может быть легко выполнена путем отслеживания ее везде, где она идет. Вы можете знать высоту линии, начиная с самой внешней линии и прослеживая линии один за другим по направлению внутрь, удаляя каждую линию, которую вы отслеживаете, и отслеживаете, сколько линий вы проследили.
Конечно, вам нужно заранее знать, что такое разность высот между линиями и какова высота самой внешней линии (или любая другая линия, которая может использоваться как ссылка)

Как только у вас есть 3D Точечное облако вы можете использовать любой из нескольких алгоритмов восстановления поверхности. This company, например, делает приложение, которое делает это, и вы можете скачать демо-версию командной строки с сайта, которая будет работать до 30 000 точек.

2

Алгоритм реконструкции поверхности будет пустой тратой времени в этом случае, если ваши точки находятся в z = f (x, y) или ваша форма выпукла.

Для г = Р (х, у) является простым решением

  1. триангуляции Делона с использованием только х, у координаты
  2. участка поверхности с предыдущей триангуляцией, на этот раз использую г тоже. Работа сделана!

Ваша форма выпуклым Используй алгоритм convhull

Вашей форма вогнутое использование: http://www.advancedmcode.org/surface-recostruction-from-scattered-points-cloud-mycrust-robust.html

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

  • Нет связанных вопросов^_^