Geometria Computacional Prof. Walter Mascarenhas Segundo semestre de 2004 Aula 9.
-
Upload
sofia-fragoso-deluca -
Category
Documents
-
view
217 -
download
0
Transcript of Geometria Computacional Prof. Walter Mascarenhas Segundo semestre de 2004 Aula 9.
![Page 1: Geometria Computacional Prof. Walter Mascarenhas Segundo semestre de 2004 Aula 9.](https://reader031.fdocumentos.com/reader031/viewer/2022020211/5706384b1a28abb8238f5a90/html5/thumbnails/1.jpg)
Geometria Computacional
Prof. Walter MascarenhasSegundo semestre de 2004
Aula 9
![Page 2: Geometria Computacional Prof. Walter Mascarenhas Segundo semestre de 2004 Aula 9.](https://reader031.fdocumentos.com/reader031/viewer/2022020211/5706384b1a28abb8238f5a90/html5/thumbnails/2.jpg)
Decomposição em partes convexas
Convexo = simples
Não convexo = complexo
![Page 3: Geometria Computacional Prof. Walter Mascarenhas Segundo semestre de 2004 Aula 9.](https://reader031.fdocumentos.com/reader031/viewer/2022020211/5706384b1a28abb8238f5a90/html5/thumbnails/3.jpg)
Ser convexo é:
Ser intersecção de semiplanos
Ter ângulos internos <=
180
Ter Pontos internos ligados por segmentos
internos
![Page 4: Geometria Computacional Prof. Walter Mascarenhas Segundo semestre de 2004 Aula 9.](https://reader031.fdocumentos.com/reader031/viewer/2022020211/5706384b1a28abb8238f5a90/html5/thumbnails/4.jpg)
Custo baixo: teórico O(n). Esperado O(n log*n) na prática.Qualidade: ruim, n - 2 partes
Primeira tentativa: triangulação.
![Page 5: Geometria Computacional Prof. Walter Mascarenhas Segundo semestre de 2004 Aula 9.](https://reader031.fdocumentos.com/reader031/viewer/2022020211/5706384b1a28abb8238f5a90/html5/thumbnails/5.jpg)
Custo baixo: teórico O(n). Esperado O(n log*n) na prática.Qualidade: 2 r + 1 partes, r = número de ângulos reversos
Segunda tentativa: juntar triângulos (Hertel and Mehlhorn).
![Page 6: Geometria Computacional Prof. Walter Mascarenhas Segundo semestre de 2004 Aula 9.](https://reader031.fdocumentos.com/reader031/viewer/2022020211/5706384b1a28abb8238f5a90/html5/thumbnails/6.jpg)
Hertel and Mehlhorn: juntar quais triângulos?
Analise o “V” pontilhado associado a cada vértice reverso.
1- Se o “V” contiver diagonais, escolha uma delas e pinte-a de magenta.
2- Se o “V” não contiver diagonal alguma, pinte a diagonal mais próxima do “V” de cada lado de magenta.
3- Apague as diagonais que não foram pintadas de magenta.
![Page 7: Geometria Computacional Prof. Walter Mascarenhas Segundo semestre de 2004 Aula 9.](https://reader031.fdocumentos.com/reader031/viewer/2022020211/5706384b1a28abb8238f5a90/html5/thumbnails/7.jpg)
Número de diagonais <= 2 r implica em número
de faces <= 2 r + 1.
Neste caso é melhor: r = 4 e nFaces = 7 < 9
Poderia ser melhor?
Hertel and Mehlhorn: resultado final
![Page 8: Geometria Computacional Prof. Walter Mascarenhas Segundo semestre de 2004 Aula 9.](https://reader031.fdocumentos.com/reader031/viewer/2022020211/5706384b1a28abb8238f5a90/html5/thumbnails/8.jpg)
Número de diagonais <= 2 r implica em número
de faces <= 2 r + 1.
Neste caso é melhor: r = 4 e nFaces = 7 < 9
Poderia ser melhor?
Hertel and Mehlhorn: resultado final
![Page 9: Geometria Computacional Prof. Walter Mascarenhas Segundo semestre de 2004 Aula 9.](https://reader031.fdocumentos.com/reader031/viewer/2022020211/5706384b1a28abb8238f5a90/html5/thumbnails/9.jpg)
Poderia ser ainda melhor?
Pode melhorar? Sim, escolha outra triangulação:
![Page 10: Geometria Computacional Prof. Walter Mascarenhas Segundo semestre de 2004 Aula 9.](https://reader031.fdocumentos.com/reader031/viewer/2022020211/5706384b1a28abb8238f5a90/html5/thumbnails/10.jpg)
Pode melhorar? Só com diagonais não.
Pode melhorar?
![Page 11: Geometria Computacional Prof. Walter Mascarenhas Segundo semestre de 2004 Aula 9.](https://reader031.fdocumentos.com/reader031/viewer/2022020211/5706384b1a28abb8238f5a90/html5/thumbnails/11.jpg)
Pode melhorar? De jeito nenhum!
Prova: cada “V” pontilhado tem que conter pelo menos um lado de uma parte convexa. Como os “V”s pontilhados são disjuntos, eles devem conter pelo menos 4 lados. Isto implica em pelo menos 5 partes convexas.
![Page 12: Geometria Computacional Prof. Walter Mascarenhas Segundo semestre de 2004 Aula 9.](https://reader031.fdocumentos.com/reader031/viewer/2022020211/5706384b1a28abb8238f5a90/html5/thumbnails/12.jpg)
Teorema: o número mínimo de faces convexas é r/2 + 1.
Prova: cada vértice reverso tem que ser “quebrado” pelo menos uma vez. Uma diagonal quebra no máximo 2 vértices. Logo pelo menos r/2 diagonais deverão permanecer. Isto dá r/2 + 1 faces.
Casos geraisTeorema: é sempre possível obter r + 1 partes convexas.
Prova: trace as bissetrizes dos vértice reversos, uma a uma. As r bissetrizes vão levar a r + 1 partes convexas.
Corolário: O algoritmo de Hertel & Mehlhorn erra por um fator de no máximo 4 ~ (2 r + 1) / (r/2 + 1).
![Page 13: Geometria Computacional Prof. Walter Mascarenhas Segundo semestre de 2004 Aula 9.](https://reader031.fdocumentos.com/reader031/viewer/2022020211/5706384b1a28abb8238f5a90/html5/thumbnails/13.jpg)
Exemplos: pontos internos
![Page 14: Geometria Computacional Prof. Walter Mascarenhas Segundo semestre de 2004 Aula 9.](https://reader031.fdocumentos.com/reader031/viewer/2022020211/5706384b1a28abb8238f5a90/html5/thumbnails/14.jpg)
Hertel and Mehlhorn pode atingir o fator 4:
![Page 15: Geometria Computacional Prof. Walter Mascarenhas Segundo semestre de 2004 Aula 9.](https://reader031.fdocumentos.com/reader031/viewer/2022020211/5706384b1a28abb8238f5a90/html5/thumbnails/15.jpg)
Hertel and Mehlhorn pode atingir o fator 4:
![Page 16: Geometria Computacional Prof. Walter Mascarenhas Segundo semestre de 2004 Aula 9.](https://reader031.fdocumentos.com/reader031/viewer/2022020211/5706384b1a28abb8238f5a90/html5/thumbnails/16.jpg)
Uma proposta de algoritmo O(n logn) que erra no máximo um fator de 2
![Page 17: Geometria Computacional Prof. Walter Mascarenhas Segundo semestre de 2004 Aula 9.](https://reader031.fdocumentos.com/reader031/viewer/2022020211/5706384b1a28abb8238f5a90/html5/thumbnails/17.jpg)
Uma proposta de algoritmo O(n logn) que erra no máximo um fator de 2
Estruturas de dados
1- Array de listas duplamente ligadas para representar os polígonos em construção
2- Heap para determinar a o ordem dos eventos
3- Árvore balanceada para administrar os cortes da scanline
![Page 18: Geometria Computacional Prof. Walter Mascarenhas Segundo semestre de 2004 Aula 9.](https://reader031.fdocumentos.com/reader031/viewer/2022020211/5706384b1a28abb8238f5a90/html5/thumbnails/18.jpg)
Uma proposta de algoritmo O(n logn) que erra no máximo um fator de 2. Eventos: novo lado
![Page 19: Geometria Computacional Prof. Walter Mascarenhas Segundo semestre de 2004 Aula 9.](https://reader031.fdocumentos.com/reader031/viewer/2022020211/5706384b1a28abb8238f5a90/html5/thumbnails/19.jpg)
Uma proposta de algoritmo O(n logn) que erra no máximo um fator de 2. Eventos: novo máximo local
![Page 20: Geometria Computacional Prof. Walter Mascarenhas Segundo semestre de 2004 Aula 9.](https://reader031.fdocumentos.com/reader031/viewer/2022020211/5706384b1a28abb8238f5a90/html5/thumbnails/20.jpg)
Uma proposta de algoritmo O(n logn) que erra no máximo um fator de 2. Eventos: novo mínimo local
![Page 21: Geometria Computacional Prof. Walter Mascarenhas Segundo semestre de 2004 Aula 9.](https://reader031.fdocumentos.com/reader031/viewer/2022020211/5706384b1a28abb8238f5a90/html5/thumbnails/21.jpg)
Uma proposta de algoritmo O(n logn) que erra no máximo um fator de 2. Evento: lado cruza V
![Page 22: Geometria Computacional Prof. Walter Mascarenhas Segundo semestre de 2004 Aula 9.](https://reader031.fdocumentos.com/reader031/viewer/2022020211/5706384b1a28abb8238f5a90/html5/thumbnails/22.jpg)
Uma proposta de algoritmo O(n logn) que erra no máximo um fator de 2. Evento: V cruza V