Download - Polígono - INF2604 Geometria Computacional
PolıgonoINF2604 – Geometria Computacional
Waldemar [email protected]
Departamento de Informatica, PUC-Rio
W. Celes Polıgono 1
Polıgonos
Polıgonos sao empregados para representacao de objetos reais
I Boa representacao
I Facil manipulacao computacional
Definicao:I Polıgono e uma regiao do plano delimitada por uma sequencia
de segmentos de reta formando uma curva simples fechadaI Curva simples fechada e homeomorfa a um cırculo
W. Celes Polıgono 2
Polıgonos
Polıgonos sao empregados para representacao de objetos reais
I Boa representacao
I Facil manipulacao computacional
Definicao:I Polıgono e uma regiao do plano delimitada por uma sequencia
de segmentos de reta formando uma curva simples fechadaI Curva simples fechada e homeomorfa a um cırculo
W. Celes Polıgono 2
Polıgonos
Representacao:
P = {e0 = v0v1, e1 = v1v2, ..., en−1 = vn−1v0}
com
{ei ∩ ei+1 = vi+1
ei ∩ ej = ∅, se j 6= i + 1
v0
v1
v3
· · ·vn�1
W. Celes Polıgono 3
Polıgonos
Teorema de JordanI A fronteira ∂P de um polıgono P particiona o plano em duas
partes: o interior limitado e o exterior ilimitado
Classificacao de pontoI A partir de um ponto p, traca-se um raio nao paralelo as
arestas e conta-se o numero n de intersecoes com ∂PI Se n for par, ponto e exterior ao polıgonoI Se n for ımpar, ponto e interior ao polıgono
v0
v1
v3
· · ·vn�1
p
1 2 3
W. Celes Polıgono 4
Polıgonos
Teorema de JordanI A fronteira ∂P de um polıgono P particiona o plano em duas
partes: o interior limitado e o exterior ilimitado
Classificacao de pontoI A partir de um ponto p, traca-se um raio nao paralelo as
arestas e conta-se o numero n de intersecoes com ∂PI Se n for par, ponto e exterior ao polıgonoI Se n for ımpar, ponto e interior ao polıgono
v0
v1
v3
· · ·vn�1
p
1 2 3
W. Celes Polıgono 4
Visibilidade
Problema de KleeI Considerando que um polıgono representa a planta baixa de
um museu, quantos guardas sao necessarios para vigiar omuseu, para que qualquer a area do museu seja visıvel a pelomenos um guarda?
I Considerando:I Guardas estacionariosI Guardas com visao 2π
VisibilidadeI O ponto y e visıvel a x se:
I xy ⊆ P
I O ponto y e claramente visıvel a x se:I xy ⊆ PI xy ∩ ∂P ⊆ {x, y}
W. Celes Polıgono 5
Visibilidade
Problema de KleeI Considerando que um polıgono representa a planta baixa de
um museu, quantos guardas sao necessarios para vigiar omuseu, para que qualquer a area do museu seja visıvel a pelomenos um guarda?
I Considerando:I Guardas estacionariosI Guardas com visao 2π
VisibilidadeI O ponto y e visıvel a x se:
I xy ⊆ P
I O ponto y e claramente visıvel a x se:I xy ⊆ PI xy ∩ ∂P ⊆ {x, y}
W. Celes Polıgono 5
Problema de Klee
Achar uma funcao g(n) que expressa a quantidade de guardasnecessaria em funcao do numero de vertices do polıgono
I Em 2D, claramente 1 ≤ g(n) ≤ nI Por inducao:
I Para n = 3, g(n) = 1 (obvio!)
I Para n = 4:I Quadrilatero convexo: g(n) = 1I Quadrilatero concavo (∃θ > π): g(n) = 1
I Para n = 5:I Convexo ou com 1 vertice concavo: g(n) = 1I Com 2 vertices consecutivos concavos: g(n) = 1I Com 2 vertices nao consecutivos concavos: g(n) = 1
I Para n = 6:I Com formacao de 2 aletas: requer g(n) = 2
W. Celes Polıgono 6
Problema de Klee
Achar uma funcao g(n) que expressa a quantidade de guardasnecessaria em funcao do numero de vertices do polıgono
I Em 2D, claramente 1 ≤ g(n) ≤ nI Por inducao:
I Para n = 3, g(n) = 1 (obvio!)I Para n = 4:
I Quadrilatero convexo: g(n) = 1I Quadrilatero concavo (∃θ > π):
g(n) = 1
I Para n = 5:I Convexo ou com 1 vertice concavo: g(n) = 1I Com 2 vertices consecutivos concavos: g(n) = 1I Com 2 vertices nao consecutivos concavos: g(n) = 1
I Para n = 6:I Com formacao de 2 aletas: requer g(n) = 2
W. Celes Polıgono 6
Problema de Klee
Achar uma funcao g(n) que expressa a quantidade de guardasnecessaria em funcao do numero de vertices do polıgono
I Em 2D, claramente 1 ≤ g(n) ≤ nI Por inducao:
I Para n = 3, g(n) = 1 (obvio!)I Para n = 4:
I Quadrilatero convexo: g(n) = 1I Quadrilatero concavo (∃θ > π): g(n) = 1
I Para n = 5:I Convexo ou com 1 vertice concavo: g(n) = 1I Com 2 vertices consecutivos concavos: g(n) = 1I Com 2 vertices nao consecutivos concavos: g(n) = 1
I Para n = 6:I Com formacao de 2 aletas: requer g(n) = 2
W. Celes Polıgono 6
Problema de Klee
Achar uma funcao g(n) que expressa a quantidade de guardasnecessaria em funcao do numero de vertices do polıgono
I Em 2D, claramente 1 ≤ g(n) ≤ nI Por inducao:
I Para n = 3, g(n) = 1 (obvio!)I Para n = 4:
I Quadrilatero convexo: g(n) = 1I Quadrilatero concavo (∃θ > π): g(n) = 1
I Para n = 5:I Convexo ou com 1 vertice concavo: g(n) = 1I Com 2 vertices consecutivos concavos:
g(n) = 1I Com 2 vertices nao consecutivos concavos: g(n) = 1
I Para n = 6:I Com formacao de 2 aletas: requer g(n) = 2
W. Celes Polıgono 6
Problema de Klee
Achar uma funcao g(n) que expressa a quantidade de guardasnecessaria em funcao do numero de vertices do polıgono
I Em 2D, claramente 1 ≤ g(n) ≤ nI Por inducao:
I Para n = 3, g(n) = 1 (obvio!)I Para n = 4:
I Quadrilatero convexo: g(n) = 1I Quadrilatero concavo (∃θ > π): g(n) = 1
I Para n = 5:I Convexo ou com 1 vertice concavo: g(n) = 1I Com 2 vertices consecutivos concavos: g(n) = 1I Com 2 vertices nao consecutivos concavos:
g(n) = 1
I Para n = 6:I Com formacao de 2 aletas: requer g(n) = 2
W. Celes Polıgono 6
Problema de Klee
Achar uma funcao g(n) que expressa a quantidade de guardasnecessaria em funcao do numero de vertices do polıgono
I Em 2D, claramente 1 ≤ g(n) ≤ nI Por inducao:
I Para n = 3, g(n) = 1 (obvio!)I Para n = 4:
I Quadrilatero convexo: g(n) = 1I Quadrilatero concavo (∃θ > π): g(n) = 1
I Para n = 5:I Convexo ou com 1 vertice concavo: g(n) = 1I Com 2 vertices consecutivos concavos: g(n) = 1I Com 2 vertices nao consecutivos concavos: g(n) = 1
I Para n = 6:I Com formacao de 2 aletas: requer g(n) = 2
W. Celes Polıgono 6
Problema de Klee
Achar uma funcao g(n) que expressa a quantidade de guardasnecessaria em funcao do numero de vertices do polıgono
I Em 2D, claramente 1 ≤ g(n) ≤ nI Por inducao:
I Para n = 3, g(n) = 1 (obvio!)I Para n = 4:
I Quadrilatero convexo: g(n) = 1I Quadrilatero concavo (∃θ > π): g(n) = 1
I Para n = 5:I Convexo ou com 1 vertice concavo: g(n) = 1I Com 2 vertices consecutivos concavos: g(n) = 1I Com 2 vertices nao consecutivos concavos: g(n) = 1
I Para n = 6:I Com formacao de 2 aletas: requer g(n) = 2
W. Celes Polıgono 6
Problema de Klee
Numero de guardas g(n)I Para n ≥ 6:
I Forma-se k aletas com 3k verticesI Logo, pode requerer: g(n) = k;
ainda, como para n = 3, 4, 5 tem-se g(n) = 1;entao, intuitivamente tem-se g(n) = bn/3c
Pergunta: bn/3c e suficiente?
W. Celes Polıgono 7
Problema de Klee
Numero de guardas g(n)I Para n ≥ 6:
I Forma-se k aletas com 3k verticesI Logo, pode requerer: g(n) = k;
ainda, como para n = 3, 4, 5 tem-se g(n) = 1;entao, intuitivamente tem-se g(n) = bn/3c
Pergunta: bn/3c e suficiente?
W. Celes Polıgono 7
Diagonal
Diagonal de PI Segmento de reta que conecta 2 vertices de P, vivj , tal que:
{vivj ⊆ P
vivj ∩ ∂P = {vi , vj}
I Diagonais que nao se cruzamI Diagonais que se cruzam
W. Celes Polıgono 8
Diagonal
Diagonal de PI Segmento de reta que conecta 2 vertices de P, vivj , tal que:
{vivj ⊆ P
vivj ∩ ∂P = {vi , vj}
I Diagonais que nao se cruzamI Diagonais que se cruzam
W. Celes Polıgono 8
Triangulacao
Triangulacao de PI Decomposicao de P em triangulos atraves de um conjunto
maximo de diagonais que nao se cruzamI P pode ter diferentes triangulacoes
W. Celes Polıgono 9
Triangulacao
Todo polıgono P com n > 3 tem uma diagonal?
I Sim!I Considere o vertice mais abaixo: vi tal que viy = ymin
I Vertices vizinhos formam uma diagonal: vi−1vi+1
I Existe um vertice vk interior ao triangulo vi−1vivi+1;nesse caso, vivk e diagonal
Por inducao, todo polıgono tem uma triangulacao
I Isso nao se estende para 3D!
W. Celes Polıgono 10
Triangulacao
Todo polıgono P com n > 3 tem uma diagonal?I Sim!
I Considere o vertice mais abaixo: vi tal que viy = ymin
I Vertices vizinhos formam uma diagonal: vi−1vi+1
I Existe um vertice vk interior ao triangulo vi−1vivi+1;nesse caso, vivk e diagonal
Por inducao, todo polıgono tem uma triangulacao
I Isso nao se estende para 3D!
W. Celes Polıgono 10
Triangulacao
Todo polıgono P com n > 3 tem uma diagonal?I Sim!
I Considere o vertice mais abaixo: vi tal que viy = ymin
I Vertices vizinhos formam uma diagonal: vi−1vi+1
I Existe um vertice vk interior ao triangulo vi−1vivi+1;nesse caso, vivk e diagonal
Por inducao, todo polıgono tem uma triangulacao
I Isso nao se estende para 3D!
W. Celes Polıgono 10
Triangulacao
Todo polıgono P com n > 3 tem uma diagonal?I Sim!
I Considere o vertice mais abaixo: vi tal que viy = ymin
I Vertices vizinhos formam uma diagonal: vi−1vi+1
I Existe um vertice vk interior ao triangulo vi−1vivi+1;nesse caso, vivk e diagonal
Por inducao, todo polıgono tem uma triangulacao
I Isso nao se estende para 3D!
W. Celes Polıgono 10
Triangulacao
Todo polıgono P com n > 3 tem uma diagonal?I Sim!
I Considere o vertice mais abaixo: vi tal que viy = ymin
I Vertices vizinhos formam uma diagonal: vi−1vi+1
I Existe um vertice vk interior ao triangulo vi−1vivi+1;nesse caso, vivk e diagonal
Por inducao, todo polıgono tem uma triangulacao
I Isso nao se estende para 3D!
W. Celes Polıgono 10
Propriedades da triangulacao
Toda triangulacao de P tem:I n − 3 diagonaisI n − 2 triangulos
Prova por inducao:I Para n = 3, a deducao e trivialI Para n > 3, sabendo que se tem a prova para n − 1 vertices:
I Uma diagonal qualquer particiona o polıgono em doissubpolıgonos P1 e P2
I n1 + n2 = n + 2, ja que dois vertices sao compartilhadosI Como por inducao P1 e P2 tem n1 − 2 e n2 − 2 triangulos,
respectivamente:
(n1 − 2) + (n2 − 2) = (n1 + n2)− 4 = (n + 2)− 4 = n − 2
I Similarmente, o numero de diagonais e:
(n1 − 3) + (n2 − 3) + 1 = n − 3
onde + 1 e devido a diagonal que particiona P
W. Celes Polıgono 11
Propriedades da triangulacao
Toda triangulacao de P tem:I n − 3 diagonaisI n − 2 triangulos
Prova por inducao:I Para n = 3, a deducao e trivialI Para n > 3, sabendo que se tem a prova para n − 1 vertices:
I Uma diagonal qualquer particiona o polıgono em doissubpolıgonos P1 e P2
I n1 + n2 = n + 2, ja que dois vertices sao compartilhadosI Como por inducao P1 e P2 tem n1 − 2 e n2 − 2 triangulos,
respectivamente:
(n1 − 2) + (n2 − 2) = (n1 + n2)− 4 = (n + 2)− 4 = n − 2
I Similarmente, o numero de diagonais e:
(n1 − 3) + (n2 − 3) + 1 = n − 3
onde + 1 e devido a diagonal que particiona P
W. Celes Polıgono 11
Propriedades da triangulacao
A soma dos angulos internos de um polıgono P vale (n − 2)π
I Prova: cada triangulo contribui com π; como existe n − 2triangulos, tem-se o total de (n − 2)π
✓0✓1
✓2
X✓i = ⇡
W. Celes Polıgono 12
Propriedades da triangulacao
A soma dos angulos internos de um polıgono P vale (n − 2)π
I Prova: cada triangulo contribui com π; como existe n − 2triangulos, tem-se o total de (n − 2)π
✓0✓1
✓2
X✓i = ⇡
W. Celes Polıgono 12
Grafo dual da triangulacao
Dada uma triangulacao, o grafo dual e construıdo fazendo:
I Cada triangulo e um no do grafo
I Cada diagonal compartilhada por dois triangulose uma aresta ligando os dois nos correspondentes
I Grafo dual e uma arvore com grau maximo igual a 3I Cada triangulo tem no maximo 3 diagonais compartilhadasI Se tivesse um ciclo, o ciclo envolveria parte externa de P
I Se raiz tiver grau 1 ou 2, tem-se arvore binaria
W. Celes Polıgono 13
Grafo dual da triangulacao
Dada uma triangulacao, o grafo dual e construıdo fazendo:
I Cada triangulo e um no do grafo
I Cada diagonal compartilhada por dois triangulose uma aresta ligando os dois nos correspondentes
I Grafo dual e uma arvore com grau maximo igual a 3I Cada triangulo tem no maximo 3 diagonais compartilhadasI Se tivesse um ciclo, o ciclo envolveria parte externa de P
I Se raiz tiver grau 1 ou 2, tem-se arvore binaria
W. Celes Polıgono 13
Grafo dual da triangulacao
Dada uma triangulacao, o grafo dual e construıdo fazendo:
I Cada triangulo e um no do grafo
I Cada diagonal compartilhada por dois triangulose uma aresta ligando os dois nos correspondentes
I Grafo dual e uma arvore com grau maximo igual a 3I Cada triangulo tem no maximo 3 diagonais compartilhadasI Se tivesse um ciclo, o ciclo envolveria parte externa de P
I Se raiz tiver grau 1 ou 2, tem-se arvore binaria
W. Celes Polıgono 13
“Orelhas” de polıgonos
Orelha
I Uma sequencia de vertices consecutivos abc de P forma umaorelha se ac e uma diagonal
Tem-se:I Todo polıgono P com n > 3 tem pelo menos duas orelhas
I Orelhas sao folhas na arvore formada pelo grafo dual
W. Celes Polıgono 14
“Orelhas” de polıgonos
Orelha
I Uma sequencia de vertices consecutivos abc de P forma umaorelha se ac e uma diagonal
Tem-se:I Todo polıgono P com n > 3 tem pelo menos duas orelhas
I Orelhas sao folhas na arvore formada pelo grafo dual
W. Celes Polıgono 14
“Orelhas” de polıgonos
Orelha
I Uma sequencia de vertices consecutivos abc de P forma umaorelha se ac e uma diagonal
Tem-se:I Todo polıgono P com n > 3 tem pelo menos duas orelhas
I Orelhas sao folhas na arvore formada pelo grafo dual
W. Celes Polıgono 14
Coloracao de grafo
Considere o grafo da triangulacaoI Vertices da triangulacao sao nos do grafoI Arestas da triangulacao sao arestas do grafo
Tem-se:I 3 cores sao suficientes para colorir o grafo
I Cada vertice recebe uma cor,e nenhum vizinho direto tem a mesma cor
I Prova por inducao:I Para n = 3: obvioI Por inducao: retire uma orelha, ate n = 3, acrescente uma
orelha por vez, atribuindo ao vertice uma cor diferente dosvertices da diagonal da orelha.
Numero de guardas:I Um guarda em cada vertice de uma determinada cor
I A cor menos frequente ocorre, no maximo, bn/3c vezes
W. Celes Polıgono 15
Coloracao de grafo
Considere o grafo da triangulacaoI Vertices da triangulacao sao nos do grafoI Arestas da triangulacao sao arestas do grafo
Tem-se:I 3 cores sao suficientes para colorir o grafo
I Cada vertice recebe uma cor,e nenhum vizinho direto tem a mesma cor
I Prova por inducao:I Para n = 3: obvioI Por inducao: retire uma orelha, ate n = 3, acrescente uma
orelha por vez, atribuindo ao vertice uma cor diferente dosvertices da diagonal da orelha.
Numero de guardas:I Um guarda em cada vertice de uma determinada cor
I A cor menos frequente ocorre, no maximo, bn/3c vezes
W. Celes Polıgono 15
Coloracao de grafo
Considere o grafo da triangulacaoI Vertices da triangulacao sao nos do grafoI Arestas da triangulacao sao arestas do grafo
Tem-se:I 3 cores sao suficientes para colorir o grafo
I Cada vertice recebe uma cor,e nenhum vizinho direto tem a mesma cor
I Prova por inducao:I Para n = 3: obvioI Por inducao: retire uma orelha, ate n = 3, acrescente uma
orelha por vez, atribuindo ao vertice uma cor diferente dosvertices da diagonal da orelha.
Numero de guardas:I Um guarda em cada vertice de uma determinada cor
I A cor menos frequente ocorre, no maximo, bn/3c vezes
W. Celes Polıgono 15
Algoritmos de triangulacao
Por insercao de diagonaisI Ache uma diagonal de P
I Diagonal nao intercepta ∂PI Diagonal deve ser interna
I Divide P em P1 e P2
I Processe P1 e P2 recursivamente ate n = 3
Complexidade
I Numero de diagonais candidatas: O(n2)
I Determinacao se diagonal: ×O(n)
I Repeticao da computacao para cada n − 3 diagonais: ×O(n)
I Algoritmo completo: O(n4)
W. Celes Polıgono 16
Algoritmos de triangulacao
Por insercao de diagonaisI Ache uma diagonal de P
I Diagonal nao intercepta ∂PI Diagonal deve ser interna
I Divide P em P1 e P2
I Processe P1 e P2 recursivamente ate n = 3
Complexidade
I Numero de diagonais candidatas: O(n2)
I Determinacao se diagonal: ×O(n)
I Repeticao da computacao para cada n − 3 diagonais: ×O(n)
I Algoritmo completo: O(n4)
W. Celes Polıgono 16
Algoritmos de triangulacao
Por remocao de orelhaI Determine se cada vertice e uma orelha potencial
I Verifique se vi−1vi+1 e diagonal
I Remova uma orelhaI Atualize o estado dos vertices vi−1 e vi+1, apenasI A orelha e um dos triangulos resultantesI Repita ate n = 3
ComplexidadeI Computacao de orelhas potenciais: O(n2)
I n verticesI O(n) para testar cada diagonal
I Repeticao: O(n2)I n − 3 iteracoesI Em cada iteracao, apenas dois vertices sao atualizados: O(n)
I Algoritmo completo: O(n2)
W. Celes Polıgono 17
Algoritmos de triangulacao
Por remocao de orelhaI Determine se cada vertice e uma orelha potencial
I Verifique se vi−1vi+1 e diagonal
I Remova uma orelhaI Atualize o estado dos vertices vi−1 e vi+1, apenasI A orelha e um dos triangulos resultantesI Repita ate n = 3
ComplexidadeI Computacao de orelhas potenciais: O(n2)
I n verticesI O(n) para testar cada diagonal
I Repeticao: O(n2)I n − 3 iteracoesI Em cada iteracao, apenas dois vertices sao atualizados: O(n)
I Algoritmo completo: O(n2)
W. Celes Polıgono 17
Algoritmos de triangulacao
Por remocao de orelhaI Determine se cada vertice e uma orelha potencial
I Verifique se vi−1vi+1 e diagonal
I Remova uma orelhaI Atualize o estado dos vertices vi−1 e vi+1, apenasI A orelha e um dos triangulos resultantesI Repita ate n = 3
ComplexidadeI Computacao de orelhas potenciais: O(n2)
I n verticesI O(n) para testar cada diagonal
I Repeticao: O(n2)I n − 3 iteracoesI Em cada iteracao, apenas dois vertices sao atualizados: O(n)
I Algoritmo completo: O(n2)
W. Celes Polıgono 17
Algoritmos de triangulacao
Por remocao de orelhaI Determine se cada vertice e uma orelha potencial
I Verifique se vi−1vi+1 e diagonal
I Remova uma orelhaI Atualize o estado dos vertices vi−1 e vi+1, apenasI A orelha e um dos triangulos resultantesI Repita ate n = 3
ComplexidadeI Computacao de orelhas potenciais: O(n2)
I n verticesI O(n) para testar cada diagonal
I Repeticao: O(n2)I n − 3 iteracoesI Em cada iteracao, apenas dois vertices sao atualizados: O(n)
I Algoritmo completo: O(n2)
W. Celes Polıgono 17
Particionamento de polıgonos
Propriedades e outros particionamentos
I Polıgono monotono
I Triangulacao de polıgonos monotonos
I Particionamento em trapezios
W. Celes Polıgono 18
Monoticidade
Funcao monotona
I Nunca decrescente ou nunca crescente
W. Celes Polıgono 19
Polıgono monotono (ou monotonico)
Uma poligonal P e monotona em relacao a linha L se:
P ∩ L′ =
∅{v}{l}
, onde L′ ⊥ L
L
L0
Um polıgono P e dito monotono se:I ∂P pode ser dividido em duas poligonais monotonas
A
B
W. Celes Polıgono 20
Polıgono monotono (ou monotonico)
Uma poligonal P e monotona em relacao a linha L se:
P ∩ L′ =
∅{v}{l}
, onde L′ ⊥ L
L
L0
Um polıgono P e dito monotono se:I ∂P pode ser dividido em duas poligonais monotonas
A
B
W. Celes Polıgono 20
Monoticidade
PropriedadesI Monoticidade pode ser observada localmente em cada vertice
I Deteccao de estrutura local de monoticidade
I Vertices podem ser ordenados em relacao a linha demonoticidade
I Ordenacao O(n), basta seguir a cadeia de monoticidade
W. Celes Polıgono 21
Triangulacao
Triangulacao de polıgonos monotonos (O(n log n))
Figura extraıda de notas de aula de Subhash SuriW. Celes Polıgono 22
Particionamento em trapezios
Varredura de linha/planoI Tratar eventos discretos; no caso, ocorrencia de vertice
I Para ser eficiente, mantem-se uma lista de arestas “ativas”
a
b
c d
Troca c por d Retira c e d
a
b
c
d
Insere c e d
a
b
c
d
Direção de varredura
W. Celes Polıgono 23
Particionamento em trapezios
Varredura de linha/planoI Tratar eventos discretos; no caso, ocorrencia de vertice
I Para ser eficiente, mantem-se uma lista de arestas “ativas”
a
b
c d
Troca c por d Retira c e d
a
b
c
d
Insere c e d
a
b
c
d
Direção de varredura
W. Celes Polıgono 23
Triangulacao de polıgonos
Observacoes finais:
I A partir do particionamento em trapezios, pode-se decomporum polıgno qualquer em polıgonos monotonos
I Chazelle (1991) apresentou um algoritmo O(n) paratriangulacao de polıgonos
W. Celes Polıgono 24
Triangulacao de polıgonos
Observacoes finais:
I A partir do particionamento em trapezios, pode-se decomporum polıgno qualquer em polıgonos monotonos
I Chazelle (1991) apresentou um algoritmo O(n) paratriangulacao de polıgonos
W. Celes Polıgono 24
Exercıcio
Implemente um algoritmo de triangulacao de polıgonoI Dado um polıgono, exibir a lista de diagonais da triangulacao
I Considere como entrada uma lista de vertices no sentidoantihorario, armazenada em um arquivo com o seguinteformato:
0 x_0 y_0
1 x_1 y_1
2 x_2 y_n
...
n -1 x_n -1 y_n -1
I Como saıda, espera-se uma lista de pares de IDs de vertices,indicando as diagonais:
id_i id_j
...
W. Celes Polıgono 25