Преобразование трехмерной сетки в облако частиц - PullRequest
2 голосов
/ 14 марта 2011

Мне нужно преобразовать произвольную триангулированную трехмерную сетку в облако частиц, которые расположены равномерно. Первой мыслью было попытаться найти способ заполнить один трехмерный треугольник. А затем заполните каждый треугольник сетки, удаляя дублированные частицы по краям, но это просто тяжело и слишком много работы. Я надеялся на более математический способ.

Может ли кто-нибудь указать мне алгоритм, который может помочь мне правильно выполнить мою задачу ... ну, хотя бы приблизительно?

Спасибо

Ответы [ 2 ]

1 голос
/ 16 марта 2011

Есть два основных варианта:

  • Вокселизация сетки. Легко осуществить преобразование сетки в вокселы, но это неточно, поскольку невозможно добиться равномерного расстояния: расстояние между кубами может быть x, x * sqrt (2) или x * sqrt (3), в зависимости от того, находятся ли соседние кубы в одной плоскости и смежны .

  • Отбор проб пуассоновского диска на поверхности. Трудно реализовать и отсутствие исследовательского материала и кода, но математически очень правильно. Некоторые ссылки:

    http://research.microsoft.com/apps/pubs/default.aspx?id=135760

    http://web.mysites.ntu.edu.sg/cwfu/public/Shared%20Documents/dualtiling/index.html

0 голосов
/ 14 марта 2011

Вы можете преобразовать TIN в растр, используя пакет ГИС или программное обеспечение, такое как R, а затем извлечь одну точку в центре каждого пикселя, представляющего значение.(Пример в ArcGIS )

РЕДАКТИРОВАТЬ: Если неправильная трехмерная сетка имеет несколько высот на {x, y}, аналогичным подходом будет выборка сетки с использованием воксельной "сетки" и сохранениеодно значение на воксель.GRASS GIS имеет функциональность , позволяющую получать вершины TIN (3d-сетки) и преобразовывать их в воксели, а затем обратно в обычное трехмерное облако.

...