N-wymiarowe biblioteki oprogramowania Delaunay Tesselation


10

Mam zestaw znanych punktów / węzłów rozmieszczonych nieregularnie w przestrzeni N-wymiarowej (N> = 2) i chciałbym sposobu na wygenerowanie triangulacji Delaunaya tych punktów i zwrócenie odpowiednich elementów.

Czy istnieją jakieś biblioteki siatki, które wykonają triangulację ND Delaunay?

(Robię to, ponieważ chcę użyć elementów siatki jako podstawy interpolacji liniowej w dowolnym punkcie przestrzeni. Mój wymiar jest obecnie obsługiwany przez klasę C ++ wzorowaną na wymiarze, jeśli ma to znaczenie dla sugestii ...)


Cześć mirams i witamy w Scicomp! Możesz być zainteresowany tym pytaniem: scicomp.stackexchange.com/questions/770/…
— Paul

Dzięki za link, miałem nadzieję uniknąć pisania własnego meshera. Tetgen (dla 3D) działa na wiele linii kodu. Wygląda na to, że problem musiał zostać rozwiązany wiele razy.
— mirams


Triangulacja Delaunaya zazwyczaj pochodzi z wypukłego kadłuba w przestrzeni o większych wymiarach. Zobacz uwagę qhull poniżej.
— meawoppl,

3D nie jest takie trudne, ale dla 4D jest bardzo trudne podczas rafinacji, zadałem pytanie na MathOverflow, ale jeszcze nie ma odpowiedzi: mathoverflow.net/questions/130878/…
— Shuhao Cao

Odpowiedzi:


4

Myślę, że możesz to zrobić za pomocą oprogramowania wypukłego kadłuba (np. QHull) za pomocą algorytmu podnoszenia. Przynajmniej dokumentacja polecenia „delaunayn” Matlaba wydaje się wskazywać tyle samo.


2
Przetestowano 4D i wydaje się, że działa poprawnie w QHull (używam go przez scipy.spatial w python).
— Ethan Coon,

1
Nie pokonasz kadłuba. Użyłem również przez Scipy w maksymalnie 6 wymiarach.
— meawoppl,

Hmmm - to z qhull.org/news/qhull-news.html nie jest idealne: „Wszyscy użytkownicy w wersji 3-d i wyższej opcja„ Qt ”nie wytwarza zgodnych triangulacji dla sąsiednich, niełatwych aspektów. Na przykład jeśli masz regularny, trójwymiarowy układ miejsc wejściowych, ich triangulacja Delaunaya składa się z kostek. Opcja „Qt” spowoduje triangulację każdej kostki w czworościany. W obrębie każdej kostki triangulacja jest spójna, ale niekoniecznie jest spójna między sąsiednimi kostkami [C. Bertoglio; C. de Visser]. Sposób rozwiązania tego problemu jest nieznany. ” Warto jednak spróbować, zobaczę, jak sobie radzę.
— mirams


0

Znalazłem także distmesh w Matlabie, który wydaje się być w stanie to zrobić:

Strona internetowa Distmesh

Robi teselacje dla siatek elementów skończonych (poprzez QHull), ale z ładnym interfejsem do definiowania obszarów / powierzchni na podstawie funkcji odległości. Lepiej w przypadkach, w których chcesz zdefiniować powierzchnię matematycznie i nie przejmuj się, gdzie są wewnętrzne węzły.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.