Bibliotecas de software de mosaico N-dimensional Delaunay

10

Eu tenho um conjunto de pontos / nós conhecidos espaçados irregularmente no espaço N-Dimensional (N> = 2) e gostaria de uma maneira de gerar a triangulação Delaunay desses pontos e retornar os elementos correspondentes.

Existe alguma biblioteca de malhas existente que faça uma triangulação do ND Delaunay?

(Estou fazendo isso porque quero usar os elementos de malha como base para interpolação linear em qualquer ponto do espaço. Minha dimensão é atualmente tratada por uma classe C ++ modelada sobre dimensão, se isso faz alguma diferença nas sugestões ...)

mirams
fonte
Oi mirams, e bem-vindo ao scicomp! Você pode estar interessado nesta pergunta: scicomp.stackexchange.com/questions/770/…
Paul
Obrigado pelo link, eu esperava evitar escrever minha própria mensagem. O Tetgen (para 3D) é executado em várias linhas de código. Parece um problema que deve ter sido resolvido várias vezes.
Mirams
pergunta popular ... também scicomp.stackexchange.com/questions/7664/…
clipper
A triangulação de Delaunay é tipicamente derivada do casco convexo no espaço dimensional mais alto. Veja a observação qhull abaixo.
precisa saber é o seguinte
3D não é tão difícil, mas para 4D é extremamente difícil quando refino, eu fiz uma pergunta sobre MathOverflow, mas ainda sem resposta: mathoverflow.net/questions/130878/...
Shuhao Cao

Respostas:

4

Eu acho que você pode fazer isso usando o software de casco convexo (por exemplo, QHull) através do algoritmo de elevação. Pelo menos, a documentação do comando "delaunayn" do matlab parece indicar isso.

rchilton1980
fonte
2
Testei 4D, e isso parece funcionar bem no QHull (eu o uso via scipy.spatial em python).
precisa
11
Você não vai vencer o qhull. Eu usei no Scipy também em até 6 dimensões.
meawoppl
Hmmm - isso é qhull.org/news/qhull-news.html não é o ideal: "Todos os usuários Nas versões 3 e superior, a opção 'Qt' não produz triangulações conformes para facetas adjacentes e não simples. Por exemplo, se você tem uma matriz 3-d regular de sites de entrada, a triangulação Delaunay consiste em cubos. A opção 'Qt' triangulará cada cubo em tetraedro. Dentro de cada cubo, a triangulação é consistente, mas não necessariamente consistente entre os cubos adjacentes [C. Bertoglio; C. de Visser]. Como corrigir esse problema é desconhecido. " Vale a pena tentar, porém, vou ver como vou.
Mirams
5

Esse recurso parece estar disponível no CGAL

Juan M. Bello-Rivas
fonte
Isso também parece bom. Vou tentar tanto Qhull e isso. Obrigado pelas sugestões.
Mirams
0

Eu também encontrei Distmesh no Matlab que parece ser capaz de fazer isso:

Página inicial do Distmesh

Ele faz mosaicos para malhas de elementos finitos (via QHull), mas com uma interface agradável para definir áreas / superfícies com base nas funções de distância. Melhor para os casos em que você deseja definir uma superfície matematicamente e não se importa onde estão os nós internos.

mirams
fonte