triangulação - inf2604 geometria computacional

48
Triangula¸ ao INF2604 – Geometria Computacional Waldemar Celes [email protected] Departamento de Inform´ atica, PUC-Rio W. Celes Triangula¸c˜ ao 1

Upload: others

Post on 12-Jul-2022

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Triangulação - INF2604 Geometria Computacional

TriangulacaoINF2604 – Geometria Computacional

Waldemar [email protected]

Departamento de Informatica, PUC-Rio

W. Celes Triangulacao 1

Page 2: Triangulação - INF2604 Geometria Computacional

Triangulacao

Dado um conjunto fixo de pontos nao estruturados, determinaruma particao em triangulos onde os vertices sao os pontos doconjunto

W. Celes Triangulacao 2

Page 3: Triangulação - INF2604 Geometria Computacional

Triangulacao

Dado um conjunto fixo de pontos nao estruturados, determinaruma particao em triangulos onde os vertices sao os pontos doconjunto

W. Celes Triangulacao 2

Page 4: Triangulação - INF2604 Geometria Computacional

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

Page 5: Triangulação - INF2604 Geometria Computacional

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

Page 6: Triangulação - INF2604 Geometria Computacional

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

Page 7: Triangulação - INF2604 Geometria Computacional

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

Page 8: Triangulação - INF2604 Geometria Computacional

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

Page 9: Triangulação - INF2604 Geometria Computacional

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

Page 10: Triangulação - INF2604 Geometria Computacional

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

Page 11: Triangulação - INF2604 Geometria Computacional

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

Page 12: Triangulação - INF2604 Geometria Computacional

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

Page 13: Triangulação - INF2604 Geometria Computacional

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

Page 14: Triangulação - INF2604 Geometria Computacional

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

Page 15: Triangulação - INF2604 Geometria Computacional

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

Page 16: Triangulação - INF2604 Geometria Computacional

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

Page 17: Triangulação - INF2604 Geometria Computacional

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

Page 18: Triangulação - INF2604 Geometria Computacional

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

Page 19: Triangulação - INF2604 Geometria Computacional

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

Page 20: Triangulação - INF2604 Geometria Computacional

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

Page 21: Triangulação - INF2604 Geometria Computacional

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

Page 22: Triangulação - INF2604 Geometria Computacional

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

Page 23: Triangulação - INF2604 Geometria Computacional

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

Page 24: Triangulação - INF2604 Geometria Computacional

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

Page 25: Triangulação - INF2604 Geometria Computacional

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

Page 26: Triangulação - INF2604 Geometria Computacional

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

Page 27: Triangulação - INF2604 Geometria Computacional

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

Page 28: Triangulação - INF2604 Geometria Computacional

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

Page 29: Triangulação - INF2604 Geometria Computacional

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

Page 30: Triangulação - INF2604 Geometria Computacional

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

Page 31: Triangulação - INF2604 Geometria Computacional

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

Page 32: Triangulação - INF2604 Geometria Computacional

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

Page 33: Triangulação - INF2604 Geometria Computacional

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

Page 34: Triangulação - INF2604 Geometria Computacional

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

Page 35: Triangulação - INF2604 Geometria Computacional

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

Page 36: Triangulação - INF2604 Geometria Computacional

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

Page 37: Triangulação - INF2604 Geometria Computacional

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

Page 38: Triangulação - INF2604 Geometria Computacional

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

Page 39: Triangulação - INF2604 Geometria Computacional

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

Page 40: Triangulação - INF2604 Geometria Computacional

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

Page 41: Triangulação - INF2604 Geometria Computacional

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

Page 42: Triangulação - INF2604 Geometria Computacional

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

Page 43: Triangulação - INF2604 Geometria Computacional

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

Page 44: Triangulação - INF2604 Geometria Computacional

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

Page 45: Triangulação - INF2604 Geometria Computacional

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

Page 46: Triangulação - INF2604 Geometria Computacional

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

Page 47: Triangulação - INF2604 Geometria Computacional

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

Page 48: Triangulação - INF2604 Geometria Computacional

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