Triangulação - INF2604 Geometria Computacional
Transcript of Triangulação - INF2604 Geometria Computacional
TriangulacaoINF2604 – Geometria Computacional
Waldemar [email protected]
Departamento de Informatica, PUC-Rio
W. Celes Triangulacao 1
Triangulacao
Dado um conjunto fixo de pontos nao estruturados, determinaruma particao em triangulos onde os vertices sao os pontos doconjunto
W. Celes Triangulacao 2
Triangulacao
Dado um conjunto fixo de pontos nao estruturados, determinaruma particao em triangulos onde os vertices sao os pontos doconjunto
W. Celes Triangulacao 2
Triangulacao
Definicao: aresta
I Qualquer segmento que conecta dois pontos do conjunto S
Definicao: triangulacao planarI A triangulacao de um conjunto planar de pontos S e uma
subdivisao do plano determinada por um conjunto maximal dearestas que nao se cruzam.
I Nao existe outra aresta que possa ser incluıdaI Arestas do fecho convexo pertencem a triangulacaoI Regioes internas ao fecho convexo sao triangulos
I Existem diferentes triangulacoes para um conjunto de pontos
Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011
W. Celes Triangulacao 3
Triangulacao
Definicao: aresta
I Qualquer segmento que conecta dois pontos do conjunto S
Definicao: triangulacao planarI A triangulacao de um conjunto planar de pontos S e uma
subdivisao do plano determinada por um conjunto maximal dearestas que nao se cruzam.
I Nao existe outra aresta que possa ser incluıda
I Arestas do fecho convexo pertencem a triangulacaoI Regioes internas ao fecho convexo sao triangulos
I Existem diferentes triangulacoes para um conjunto de pontos
Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011
W. Celes Triangulacao 3
Triangulacao
Definicao: aresta
I Qualquer segmento que conecta dois pontos do conjunto S
Definicao: triangulacao planarI A triangulacao de um conjunto planar de pontos S e uma
subdivisao do plano determinada por um conjunto maximal dearestas que nao se cruzam.
I Nao existe outra aresta que possa ser incluıdaI Arestas do fecho convexo pertencem a triangulacaoI Regioes internas ao fecho convexo sao triangulos
I Existem diferentes triangulacoes para um conjunto de pontos
Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011
W. Celes Triangulacao 3
Triangulacao
Definicao: aresta
I Qualquer segmento que conecta dois pontos do conjunto S
Definicao: triangulacao planarI A triangulacao de um conjunto planar de pontos S e uma
subdivisao do plano determinada por um conjunto maximal dearestas que nao se cruzam.
I Nao existe outra aresta que possa ser incluıdaI Arestas do fecho convexo pertencem a triangulacaoI Regioes internas ao fecho convexo sao triangulos
I Existem diferentes triangulacoes para um conjunto de pontos
Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011
W. Celes Triangulacao 3
Algoritmo subdivisao de triangulos
Entrada:I Dados um conjunto de pontos
I Assume-se que nao existem pontos colineares
Algoritmo:
I Constroi o fecho convexo dos pontosI Constroi uma triangulacao do fecho convexo
I Ignorando os pontos interiores
I Para cada ponto interiorI Localiza o triangulo que o contemI Subdivide o triangulo em 3 subtriangulos
W. Celes Triangulacao 4
Algoritmo subdivisao de triangulos
Exemplo
I Triangulacao do fecho e ordem de processamentodos pontos interiores afetam triangulacao obtida
Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011
W. Celes Triangulacao 5
Triangulacao
PropriedadeI Se temos h pontos no fecho convexo e k pontos interiores,
o numero total de triangulos obtidos e 2k + h − 2
Prova pelo algoritmo:I Triangulacao de Pn tem n − 2 triangulos (ver “Polıgonos”)
I No caso, temos h − 2 triangulos iniciaisI Para cada ponto interior, adiciona-se 2 triangulos
I Remove um e adiciona tres
Prova pela formula de Euler: V − E + F = 2I Numero de faces: F = t + 1 (triangulos + face externa)I Numero de arestas: E = (3t + h)/2I Numero de vertices: V = h + kI Colocando na formula de Euler:
h + k − 3t + h
2+ t + 1 = 2 ∴ t = 2k + h − 2
W. Celes Triangulacao 6
Triangulacao
PropriedadeI Se temos h pontos no fecho convexo e k pontos interiores,
o numero total de triangulos obtidos e 2k + h − 2
Prova pelo algoritmo:
I Triangulacao de Pn tem n − 2 triangulos (ver “Polıgonos”)I No caso, temos h − 2 triangulos iniciais
I Para cada ponto interior, adiciona-se 2 triangulosI Remove um e adiciona tres
Prova pela formula de Euler: V − E + F = 2I Numero de faces: F = t + 1 (triangulos + face externa)I Numero de arestas: E = (3t + h)/2I Numero de vertices: V = h + kI Colocando na formula de Euler:
h + k − 3t + h
2+ t + 1 = 2 ∴ t = 2k + h − 2
W. Celes Triangulacao 6
Triangulacao
PropriedadeI Se temos h pontos no fecho convexo e k pontos interiores,
o numero total de triangulos obtidos e 2k + h − 2
Prova pelo algoritmo:I Triangulacao de Pn tem n − 2 triangulos (ver “Polıgonos”)
I No caso, temos h − 2 triangulos iniciaisI Para cada ponto interior, adiciona-se 2 triangulos
I Remove um e adiciona tres
Prova pela formula de Euler: V − E + F = 2I Numero de faces: F = t + 1 (triangulos + face externa)I Numero de arestas: E = (3t + h)/2I Numero de vertices: V = h + kI Colocando na formula de Euler:
h + k − 3t + h
2+ t + 1 = 2 ∴ t = 2k + h − 2
W. Celes Triangulacao 6
Triangulacao
PropriedadeI Se temos h pontos no fecho convexo e k pontos interiores,
o numero total de triangulos obtidos e 2k + h − 2
Prova pelo algoritmo:I Triangulacao de Pn tem n − 2 triangulos (ver “Polıgonos”)
I No caso, temos h − 2 triangulos iniciaisI Para cada ponto interior, adiciona-se 2 triangulos
I Remove um e adiciona tres
Prova pela formula de Euler: V − E + F = 2
I Numero de faces: F = t + 1 (triangulos + face externa)I Numero de arestas: E = (3t + h)/2I Numero de vertices: V = h + kI Colocando na formula de Euler:
h + k − 3t + h
2+ t + 1 = 2 ∴ t = 2k + h − 2
W. Celes Triangulacao 6
Triangulacao
PropriedadeI Se temos h pontos no fecho convexo e k pontos interiores,
o numero total de triangulos obtidos e 2k + h − 2
Prova pelo algoritmo:I Triangulacao de Pn tem n − 2 triangulos (ver “Polıgonos”)
I No caso, temos h − 2 triangulos iniciaisI Para cada ponto interior, adiciona-se 2 triangulos
I Remove um e adiciona tres
Prova pela formula de Euler: V − E + F = 2I Numero de faces: F = t + 1 (triangulos + face externa)I Numero de arestas: E = (3t + h)/2I Numero de vertices: V = h + kI Colocando na formula de Euler:
h + k − 3t + h
2+ t + 1 = 2 ∴ t = 2k + h − 2
W. Celes Triangulacao 6
Algoritmo de triangulacao incremental
I Baseado no algoritmo incremental para fecho convexoI Ordena pontos em xI Cria primeiro triangulo e insere pontos no fecho em ordem
Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011
W. Celes Triangulacao 7
Algoritmo de triangulacao incremental
Algoritmo
I Ordena pontos em ordem crescente de coordenada x
I Forma triangulo com os tres primeiros pontosI Adiciona ponto pk+1
I Conecta ponto a todos os anteriores visıveis
Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011
W. Celes Triangulacao 8
Algoritmo de triangulacao incremental
Algoritmo
I Ordena pontos em ordem crescente de coordenada x
I Forma triangulo com os tres primeiros pontosI Adiciona ponto pk+1
I Conecta ponto a todos os anteriores visıveis
Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011
W. Celes Triangulacao 8
Inversao de arestas
Operador inversao de arestas (edge flip)I Em uma triangulacao de um quadrilatero abcd convexo
I Remove a diagonal ac e inclui a diagonal bd.
I Inversao de aresta nao pode ocorrer em quadrilateros concavos
Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011
W. Celes Triangulacao 9
Inversao de arestas
Operador inversao de arestas (edge flip)I Em uma triangulacao de um quadrilatero abcd convexo
I Remove a diagonal ac e inclui a diagonal bd.
I Inversao de aresta nao pode ocorrer em quadrilateros concavos
Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011
W. Celes Triangulacao 9
Grafo de inversao (flip graph)
Grafo
I Nos sao triangulacoes
I Arestas sao operacoes de inversao de arestas
Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011
W. Celes Triangulacao 10
Grafo de inversao (flip graph)
Teorema:I O grafo de inversao de qualquer conjunto de pontos e conexo
I Transformamos uma triangulacao em qualquer outra porum conjunto finito de operacoes de inversao de arestas
Teorema:I Dadas duas triangulacoes T1 e T2 de S
I A distancia maxima entre T1 e T2 no grafo de inversao e igualao numero de intersecoes da superposicao de T1 e T2
Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011
W. Celes Triangulacao 11
Grafo de inversao (flip graph)
Teorema:I O grafo de inversao de qualquer conjunto de pontos e conexo
I Transformamos uma triangulacao em qualquer outra porum conjunto finito de operacoes de inversao de arestas
Teorema:I Dadas duas triangulacoes T1 e T2 de S
I A distancia maxima entre T1 e T2 no grafo de inversao e igualao numero de intersecoes da superposicao de T1 e T2
Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011
W. Celes Triangulacao 11
Triangulacao 3D
Algoritmo incrementalI Ordene os pontos em xI Os 4 primeiros formam um primeiro tetrahedroI Considere cada ponto seguinte
I Insira arestas entre o novo ponto e os pontos visıveis
Observacoes:I O numero de tetrahedro pode variar entre triangulacoes
W. Celes Triangulacao 12
Triangulacao 3D
Algoritmo incrementalI Ordene os pontos em xI Os 4 primeiros formam um primeiro tetrahedroI Considere cada ponto seguinte
I Insira arestas entre o novo ponto e os pontos visıveis
Observacoes:I O numero de tetrahedro pode variar entre triangulacoes
W. Celes Triangulacao 12
Triangulacao 3D
Algoritmo incrementalI Ordene os pontos em xI Os 4 primeiros formam um primeiro tetrahedroI Considere cada ponto seguinte
I Insira arestas entre o novo ponto e os pontos visıveis
Observacoes:I O numero de tetrahedro pode variar entre triangulacoes
W. Celes Triangulacao 12
Triangulacao 3D
I Operador de inversao de face (face flip)
Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011
W. Celes Triangulacao 13
Triangulacao 3D
Grafo de inversao
I Operacao de inversao de face (face flip)
I Nao se sabe se o grafo e conexo
Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011
W. Celes Triangulacao 14
Qualidade da triangulacao
Das diversas triangulacoes possıveis, podemos avaliar a qualidadeI Exemplo: triangulacao de terrenos (dados de elevacao)
I Inversao de aresta pode alterar formacao da superfıcie
I Como avaliar qual e melhor se nao temos mais dados?Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011
W. Celes Triangulacao 15
Qualidade da triangulacao
Das diversas triangulacoes possıveis, podemos avaliar a qualidadeI Exemplo: triangulacao de terrenos (dados de elevacao)
I Inversao de aresta pode alterar formacao da superfıcie
I Como avaliar qual e melhor se nao temos mais dados?Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011
W. Celes Triangulacao 15
Qualidade da triangulacao
Triangulacao de dados de elevacao
I Objetivo: evitar triangulos alongados
Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011
W. Celes Triangulacao 16
Qualidade da triangulacao
Triangulacao de dados de elevacao
I Objetivo: evitar triangulos alongados
Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011
W. Celes Triangulacao 16
Triangulacao de Delaunay
Suposicao (ausencia de cados degenerados)I Nao existem 4 pontos sobre uma mesma circunferencia
Qualidade de triangulacaoI Metrica de triangulacao “gorda”
I Sequencia ordenada de angulos dos triangulos de T
(α1, α2, α3, · · · , α3n)
I Exemplo: considere duas triangulacoes T1 e T2
T1 : (20◦, 30◦, 45◦, 65◦, 70◦, 130◦)
T2 : (20◦, 30◦, 45◦, 60◦, 75◦, 130◦)
I Temos T1 > T2, pois 65◦ > 60◦
W. Celes Triangulacao 17
Triangulacao de Delaunay
Suposicao (ausencia de cados degenerados)I Nao existem 4 pontos sobre uma mesma circunferencia
Qualidade de triangulacaoI Metrica de triangulacao “gorda”
I Sequencia ordenada de angulos dos triangulos de T
(α1, α2, α3, · · · , α3n)
I Exemplo: considere duas triangulacoes T1 e T2
T1 : (20◦, 30◦, 45◦, 65◦, 70◦, 130◦)
T2 : (20◦, 30◦, 45◦, 60◦, 75◦, 130◦)
I Temos T1 > T2, pois 65◦ > 60◦
W. Celes Triangulacao 17
Triangulacao de Delaunay
Suposicao (ausencia de cados degenerados)I Nao existem 4 pontos sobre uma mesma circunferencia
Qualidade de triangulacaoI Metrica de triangulacao “gorda”
I Sequencia ordenada de angulos dos triangulos de T
(α1, α2, α3, · · · , α3n)
I Exemplo: considere duas triangulacoes T1 e T2
T1 : (20◦, 30◦, 45◦, 65◦, 70◦, 130◦)
T2 : (20◦, 30◦, 45◦, 60◦, 75◦, 130◦)
I Temos T1 > T2, pois 65◦ > 60◦
W. Celes Triangulacao 17
Triangulacao de Delaunay
Suposicao (ausencia de cados degenerados)I Nao existem 4 pontos sobre uma mesma circunferencia
Qualidade de triangulacaoI Metrica de triangulacao “gorda”
I Sequencia ordenada de angulos dos triangulos de T
(α1, α2, α3, · · · , α3n)
I Exemplo: considere duas triangulacoes T1 e T2
T1 : (20◦, 30◦, 45◦, 65◦, 70◦, 130◦)
T2 : (20◦, 30◦, 45◦, 60◦, 75◦, 130◦)
I Temos T1 > T2, pois 65◦ > 60◦
W. Celes Triangulacao 17
Triangulacao de Delaunay
Definicao: Aresta legal da triangulacaoI Dada uma triangulacao T1
I Dada uma aresta e de T1
I Dado o quadrilatero Q cujo e e diagonalI Se Q e convexo, T2 e a triangulacao com a inversao de eI Dizemos que e e uma aresta legal se T1 ≥ T2
Definicao: Triangulacao de DelaunayI A triangulacao de Delaunay de um conjunto de pontos S ,
denotada por Del(S), e uma triangulacao de S que so temarestas legais.
I Pode-se provar que e a triangulacao mais gorda possıvel
W. Celes Triangulacao 18
Triangulacao de Delaunay
Definicao: Aresta legal da triangulacaoI Dada uma triangulacao T1
I Dada uma aresta e de T1
I Dado o quadrilatero Q cujo e e diagonalI Se Q e convexo, T2 e a triangulacao com a inversao de eI Dizemos que e e uma aresta legal se T1 ≥ T2
Definicao: Triangulacao de DelaunayI A triangulacao de Delaunay de um conjunto de pontos S ,
denotada por Del(S), e uma triangulacao de S que so temarestas legais.
I Pode-se provar que e a triangulacao mais gorda possıvel
W. Celes Triangulacao 18
Triangulacao de Delaunay
Definicao: Aresta legal da triangulacaoI Dada uma triangulacao T1
I Dada uma aresta e de T1
I Dado o quadrilatero Q cujo e e diagonalI Se Q e convexo, T2 e a triangulacao com a inversao de eI Dizemos que e e uma aresta legal se T1 ≥ T2
Definicao: Triangulacao de DelaunayI A triangulacao de Delaunay de um conjunto de pontos S ,
denotada por Del(S), e uma triangulacao de S que so temarestas legais.
I Pode-se provar que e a triangulacao mais gorda possıvel
W. Celes Triangulacao 18
Triangulacao de Delaunay
Algoritmo de inversao de arestas
I Constroi uma triangulacao qualquer de SI Verifica as arestas de T
I Se e e ilegal, inverte a arestaI Ate que nao exista mais arestas ilegais
Esse algoritmo termina?I A sequencia de angulos dos triangulacoes visitadas so
aumentaI Uma mesma triangulacao nunca e revisitada
I Como o numero de triangulacoes e finitoI O algoritmo tem que terminar
W. Celes Triangulacao 19
Triangulacao de Delaunay
Algoritmo de inversao de arestas
I Constroi uma triangulacao qualquer de SI Verifica as arestas de T
I Se e e ilegal, inverte a arestaI Ate que nao exista mais arestas ilegais
Esse algoritmo termina?
I A sequencia de angulos dos triangulacoes visitadas soaumenta
I Uma mesma triangulacao nunca e revisitada
I Como o numero de triangulacoes e finitoI O algoritmo tem que terminar
W. Celes Triangulacao 19
Triangulacao de Delaunay
Algoritmo de inversao de arestas
I Constroi uma triangulacao qualquer de SI Verifica as arestas de T
I Se e e ilegal, inverte a arestaI Ate que nao exista mais arestas ilegais
Esse algoritmo termina?I A sequencia de angulos dos triangulacoes visitadas so
aumentaI Uma mesma triangulacao nunca e revisitada
I Como o numero de triangulacoes e finitoI O algoritmo tem que terminar
W. Celes Triangulacao 19
Triangulacao de Delaunay
Como determinar se uma aresta e legal?
I Procedimento exaustivoI Ordena os 6 vertices de T1
I Ordena os 6 vertices de T2
I Verifica se T1 ≥ T2
Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011
W. Celes Triangulacao 20
Triangulacao de Delaunay
Como determinar se uma aresta e legal?I Procedimento exaustivo
I Ordena os 6 vertices de T1
I Ordena os 6 vertices de T2
I Verifica se T1 ≥ T2
Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011
W. Celes Triangulacao 20
Triangulacao de Delaunay
Teorema de ThalesI Considere tres pontos P, Q, e B cocircularesI Considere A dentro e C fora
I Tem-se:
PAQ > PBQ > PCQ
Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011
W. Celes Triangulacao 21
Triangulacao de Delaunay
Teorema de ThalesI Considere tres pontos P, Q, e B cocircularesI Considere A dentro e C foraI Tem-se:
PAQ > PBQ > PCQ
Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011
W. Celes Triangulacao 21
Triangulacao de Delaunay
Proposicao
I Considere uma aresta e = AC de T
I Considere os dois triangulos adjacentes ABC e ACD
I A aresta e e legal se D esta fora do cırculo definido por ABC
Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011
W. Celes Triangulacao 22
Triangulacao de Delaunay
Propriedade do cırculo vazio
I Em uma triangulacao de Delaunay, nenhum ponto e interiorao cırculo definido por qualquer triangulo
Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011
W. Celes Triangulacao 23
Exercıcios
Modifique o algoritmo de varredura de Graham para determinacaode fecho convexo para criar uma triangulacao de n pontos.
Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011
W. Celes Triangulacao 24