N-мерные библиотеки программного обеспечения Делоне

10

У меня есть набор известных точек / узлов, нерегулярно расположенных в N-мерном пространстве (N> = 2), и я хотел бы получить способ сгенерировать триангуляцию Делоне этих точек и вернуть соответствующие элементы.

Существуют ли какие-либо библиотеки с сетками, которые будут выполнять триангуляцию ND Делоне?

(Я делаю это, потому что я хочу использовать сетчатые элементы в качестве основы для линейной интерполяции в любой точке пространства. В настоящее время мое измерение обрабатывается классом C ++, расположенным над измерением, если это имеет значение для предложений ...)

mirams
источник
Привет, Мирамс, и добро пожаловать в Scicomp! Вы можете быть заинтересованы в этом вопросе: scicomp.stackexchange.com/questions/770/…
Пол
Спасибо за ссылку, я надеялся избежать написания своего собственного меша. Tetgen (для 3D) работает с большим количеством строк кода. Это похоже на проблему, которая должна быть решена много раз.
Мирамс
популярный вопрос ... также scicomp.stackexchange.com/questions/7664/…
clipper
Триангуляция Делоне, как правило, выводится из выпуклой оболочки в многомерном пространстве. Смотрите примечание qhull ниже.
meawoppl
3D не так сложно, но для 4D это очень сложно при доработке, я задал вопрос по MathOverflow, но пока ответа нет: mathoverflow.net/questions/130878/…
Shuhao Cao

Ответы:

4

Я думаю, что вы можете сделать это с помощью программного обеспечения выпуклой оболочки (например, QHull) с помощью алгоритма подъема. По крайней мере, документация команды delaunayn в matlab, похоже, указывает на это.

rchilton1980
источник
2
Протестировано 4D, и это, кажется, прекрасно работает в QHull (я использую его через scipy.spatial в python).
Итан Кун
1
Вы не победите qhull. Я использовал через Scipy в 6 измерениях.
meawoppl
Хммм - это из qhull.org/news/qhull-news.html не идеально: «Все пользователи В 3-й и выше, опция« Qt »не производит соответствующие триангуляции для смежных, не симплициальных аспектов. Например, если у вас есть регулярный трехмерный массив входных сайтов, их триангуляция Делоне состоит из кубов. Опция 'Qt' будет триангулировать каждый куб в тетраэдры. Внутри каждого куба триангуляция последовательна, но не обязательно согласована между соседними кубами [C. Bertoglio; C. de Visser]. Как решить эту проблему, неизвестно ". Хотя стоит попробовать, я посмотрю, как у меня получится.
Мирамс
5

Эта функция, кажется, доступна в CGAL

Хуан М. Белло-Ривас
источник
Это тоже выглядит хорошо. Я попробую и Qhull и это. Спасибо за предложения.
mirams
0

Я также нашел distmesh в Matlab, который, кажется, способен сделать это:

Distmesh Домашняя страница

Он делает тесселяции для конечно-элементных сеток (через QHull), но с хорошим интерфейсом для определения областей / поверхностей на основе функций расстояния. Лучше для случаев, когда вы хотите определить поверхность математически и не обращать внимания на то, где находятся внутренние узлы.

mirams
источник