Delaunay3D
-
Upload
rafael-siqueira-telles-vieira -
Category
Technology
-
view
853 -
download
0
description
Transcript of Delaunay3D
Delaunay 3DTetraedralização no R³
por Rafael Vieira
CRAb – Grupo de Computação Gráfica
Departamento de Computação
UFC
3
Histórico
No meio do século 19, o problema geométrico dos Diagramas de Proximidade alimentava as ciências da matemática e da física.
A usagem informal dos diagramas foi realizada primeiro por Descartes em 1644 e Dirichlet que os usou em 2 e 3 dimensões em seus estudos sobre formas quádricas em 1850.
A formalização e a definição dos diagramas pelo matemático russo Georgy Fedoseevich Voronoï para qualquer dimensão ocorreu apenas em 1908
Boris Delaunay, matemático russo, definiu sua divisão triangular em 1934 no seu artigo “Sur la sphère vide” publicado no Boletim da Academia de Ciências da USSR.
A triangulação de Delaunay é um grafo dual de Voronoi.
Voronoi
Delaunay
4
Teoria
Uma divisão em regiões de Delaunay para um conjunto de pontos P em uma dimensão d é tal que no interior de cada hiperesfera definida por (d+1) pontos, não existe nenhum ponto de P em seu interior.
Atenção: Os conjuntos (d+1) pontos não podem pertencer ao mesmo hiperplano de dimensão (d-1).
Delaunay em 2 dimensões
5
Teoria
A tetraedralização de Delaunay é um caso particular para 3 dimensões.
Os subconjuntos de 4 pontos de P não podem pertencer a um mesmo plano.
6
Algoritmo
Entrada: um conjunto de Pontos V em 3 dimensões
1. Encontra um vértice de V na dimensão x, y ou z mínimo ou máximo
2. Determine uma face Inicial F0 pertencente ao FC3D
3. Procura em qual lado de F0 está o conjunto V (similar linha 10)
4. Determina o 1º Poliedro P[0] pelo ponto de V que possui o maior ângulo sólido com F0.
5. Adicione P[0] em uma FILA
6. Adicione P[0] no Poliedro final PF
7. Enquanto FILA não for vazia
8. Remova um Poliedro P[i] de FILA
9. Para cada face livre F[j] de P[i]
10. Procura quais pontos T estão acima de F[j]
11. Determina o Poliedro P[i+1] adjacente a F[j](similar linha 4).
12. Determina Faces Livres de P[i+1]
13 Adicione P[i+1] em FILA
14. Adicione P[i+1] no Poliedro final PF
Saída: um conjunto de tetraedros PF formados por V
7
Face inicial
1. Obtemos sem perca de generalidade o ponto de ordenada mínima P(x,y,z)
2. Construímos uma face artificial FA, usando como referência a base canônica no espaço XZ
3. Escolhemos uma aresta A contendo P da face artificial e verificamos qual ponto P' forma uma face F com FA de com maior angulo.
4. Descartamos a primeira face e repetimos o processo para a face com PP' e P+(1,0,0) ou P+(0,0,1) encontrar o último vértice da face inicial
P
P + (0,0,1)P + (1,0,0)
P
P + (1,0,0) P + (0,0,1)
8
A que lado de uma face um ponto pertence
Usamos o produto misto ou o volume orientado para determinamos a qual lado um vértice V[i] pertence.
Repare como a orientação de cada face é importante.
Normal
A
B
C
V[i]
D = ((C – B) x (A – B)) * (V[i] - B)
D < 0 D > 0
9
Ângulo Sólido
Usamos a fórmula apresentada por Oosterom[3] para cálculo do ângulo Sólido para cada V[i] em relação a nossa Face F corrente(triângulo hachurado abaixo).
O vértice V[i] com maior ângulo sólido será usado para formar o novo tetraedro. Ele é o centro da esfera exibida abaixo:
Numerador produto misto→Denominador produto escalar→
R1, R2 e R3 claros na fórmula acima sãoos módulos dos vetores
10
Faces Livres
São determinadas por:
* Pertencem ao fecho convexo: isto é, não possuem nenhum vértice em um dos seus lados(d>0 e d <0)
* Já possuem uma face correspondente no Poliedro final PF.
* São a base de um poliedro recém formado
Faces Livres
Faces Não Livres
16
Dificuldades
Verificar a validade do algoritmo para casos complexos. Com poucos vértices é fácil verificar a validade, mas para muitos vértices se torna inviável.
Identificar casos patológicos, embora podemos contar com os mesmos casos citados em Mergehull 3D, podem existir outros casos ainda não identificados.
Ter acesso aos artigos originais de Delaunay
17
Referências
1. Chand, Kapur - An algorithm for convex polytopes – 1970.
2. F. P. Preparata , S. J. Hong - Convex hulls of finite sets of points in two and three dimensions – 1977
3. Van Oosterom, A. Strackee, J. - The Solid Angle of a Plane Triangle - 1983 4. P. C. P. Carvalho e L. H. de Figueiredo, Introdução à Geometria Computational, 18° Colóquio Brasileiro de Matemática, IMPA, 1991