Бібліотеки програмного забезпечення для тесселяції Делоне


10

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

Чи існують бібліотеки з мережею, які здійснюють триангуляцію ND Delaunay?

(Я роблю це, тому що я хочу використовувати сітчасті елементи в якості основи для лінійної інтерполяції в будь-якій точці простору. Мій розмір в даний час обробляється класом C ++, який шаблонується над виміром, якщо це має значення для пропозицій ...)


Вітайте, чудеса, і ласкаво просимо до скайкоп! Вас може зацікавити це питання: scicomp.stackexchange.com/questions/770/…
Пол

Дякую за посилання, я сподівався уникати написання власної сітки. Тетген (для 3D) працює на безліч рядків коду. Це здається проблемою, яку, мабуть, вирішували багато разів.
mirams

популярне питання ... також scicomp.stackexchange.com/questions/7664/…
clipper

Триануляція Делона зазвичай виводиться з опуклого корпусу у просторі з більшими розмірами. Дивіться зауваження qhull нижче.
meawoppl

3D не такий складний, але для 4D це надзвичайно складно при доопрацюванні, я задав запитання щодо MathOverflow, але відповіді поки немає: mathoverflow.net/questions/130878/…
Shuhao Cao

Відповіді:


4

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


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]. Як виправити цю проблему, невідомо ". Варто спробувати, хоча я побачу, як я продовжую.
mirams


0

Я також знайшов дистмеш в Matlab, який, здається, може зробити це:

Домашня сторінка Distmesh

Він робить теселяцію для кінцевих елементів сіток (через QHull), але з приємним інтерфейсом для визначення областей / поверхонь на основі дистанційних функцій. Краще для тих випадків, коли ви хочете визначити поверхню математично і не заперечуючи, де знаходяться внутрішні вузли.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.