Mergehull 3D Fecho Convexo no R³  por Rafael Vieira  CRAb – Grupo de Computação Gráfica Departamento de Computação UFC
Sumário <ul><li>Histórico
Teoria
Implementação
Estudos de Caso
Tema
Dificuldades
Referências </li></ul>
HIstórico <ul><li>Chand-Kappur desenvolvem o algoritmo do Embrulho que é eficiente para n pontos em uma dimensão arbitrári...
Graham desenvolve o primeiro algoritmo com Ordem de complexidade inferior a O(n²)[2]
Jarvis desenvolve uma especialização do método de Chand-Kappur[3]
Preparata e Hong desenvolvem o primeiro
algoritmo para fechos Convexos 3D em
O(nlogn) [4] </li></ul>Preparata - An Wang Professor  of Computer Science
Teoria: Fecho Convexo Fecho Convexo
Teoria: Mergehull 2D por Preparata e Hong <ul><li>Entrada n pontos
Ordena os pontos pelas coordenadas(x ou y)
Divide os pontos em n/2 conjuntos de pontos
Fecho Convexo de 1 ponto é ele mesmo
Fecho Convexo de 2 pontos é uma aresta
Encontrar Tangente Superior e Inferior aos FC
Unir Fechos Convexos removendo pontos e arestas internas
Saída Fecho Convexo dos pontos iniciais </li></ul>
Teoria: Fecho Convexo 2D Divisão e Conquista
Teoria: Fecho Convexo 2D i=0 i=1 i=1 i=2 i=2 i=2 i=2
Teoria: Fecho Convexo 2D i=0 i=1 i=1 i=2 i=2 i=2 i=2
Teoria: Fecho Convexo 2D i=0 i=1 i=1 Tang inferior Tang superior
Teoria: Fecho Convexo 2D i=0 Tang inferior Tang superior
Teoria: Fecho Convexo 2D i=0 Tang inferior Tang superior
Teoria: Fecho Convexo 2D i=0 Tang inferior Tang superior
Teoria: Fecho Convexo 2D Tang inferior Tang superior
Teoria: Fecho Convexo 2D Tang inferior Tang superior
Teoria: Fecho Convexo 2D Tang inferior Tang superior
Função Chave União 2D Casos que precisam ser tratados: <ul><li>Polígono com Aresta
Polígono com Vértice
Aresta com Aresta
Aresta com Vértice
Vértice com Vértice </li></ul>
Casos Patológicos <ul><li>Pontos Colineares, retorna os 2 vértices com maior distância
Pontos Coincidentes, remove </li></ul>Obs: O algoritmo Mergehull 2D é necessário para uma implementação eficiente do algor...
Teoria: Mergehull 3D por Preparata e Hong <ul><li>Entrada n pontos
Ordena os pontos pelas coordenadas(x, y ou z)
Próximos SlideShares
Carregando em…5
×

Mergehull3d

1.356 visualizações

Publicada em

Um algoritmo para computar o fecho convexo 3d de pontos no espaço. O algoritmo se utilizado do mergehull 2d e computa de maneira eficiente o poliedro resultante.

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.356
No SlideShare
0
A partir de incorporações
0
Número de incorporações
15
Ações
Compartilhamentos
0
Downloads
13
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Mergehull3d

  1. 1. Mergehull 3D Fecho Convexo no R³ por Rafael Vieira CRAb – Grupo de Computação Gráfica Departamento de Computação UFC
  2. 2. Sumário <ul><li>Histórico
  3. 3. Teoria
  4. 4. Implementação
  5. 5. Estudos de Caso
  6. 6. Tema
  7. 7. Dificuldades
  8. 8. Referências </li></ul>
  9. 9. HIstórico <ul><li>Chand-Kappur desenvolvem o algoritmo do Embrulho que é eficiente para n pontos em uma dimensão arbitrária 1970 [1]
  10. 10. Graham desenvolve o primeiro algoritmo com Ordem de complexidade inferior a O(n²)[2]
  11. 11. Jarvis desenvolve uma especialização do método de Chand-Kappur[3]
  12. 12. Preparata e Hong desenvolvem o primeiro
  13. 13. algoritmo para fechos Convexos 3D em
  14. 14. O(nlogn) [4] </li></ul>Preparata - An Wang Professor of Computer Science
  15. 15. Teoria: Fecho Convexo Fecho Convexo
  16. 16. Teoria: Mergehull 2D por Preparata e Hong <ul><li>Entrada n pontos
  17. 17. Ordena os pontos pelas coordenadas(x ou y)
  18. 18. Divide os pontos em n/2 conjuntos de pontos
  19. 19. Fecho Convexo de 1 ponto é ele mesmo
  20. 20. Fecho Convexo de 2 pontos é uma aresta
  21. 21. Encontrar Tangente Superior e Inferior aos FC
  22. 22. Unir Fechos Convexos removendo pontos e arestas internas
  23. 23. Saída Fecho Convexo dos pontos iniciais </li></ul>
  24. 24. Teoria: Fecho Convexo 2D Divisão e Conquista
  25. 25. Teoria: Fecho Convexo 2D i=0 i=1 i=1 i=2 i=2 i=2 i=2
  26. 26. Teoria: Fecho Convexo 2D i=0 i=1 i=1 i=2 i=2 i=2 i=2
  27. 27. Teoria: Fecho Convexo 2D i=0 i=1 i=1 Tang inferior Tang superior
  28. 28. Teoria: Fecho Convexo 2D i=0 Tang inferior Tang superior
  29. 29. Teoria: Fecho Convexo 2D i=0 Tang inferior Tang superior
  30. 30. Teoria: Fecho Convexo 2D i=0 Tang inferior Tang superior
  31. 31. Teoria: Fecho Convexo 2D Tang inferior Tang superior
  32. 32. Teoria: Fecho Convexo 2D Tang inferior Tang superior
  33. 33. Teoria: Fecho Convexo 2D Tang inferior Tang superior
  34. 34. Função Chave União 2D Casos que precisam ser tratados: <ul><li>Polígono com Aresta
  35. 35. Polígono com Vértice
  36. 36. Aresta com Aresta
  37. 37. Aresta com Vértice
  38. 38. Vértice com Vértice </li></ul>
  39. 39. Casos Patológicos <ul><li>Pontos Colineares, retorna os 2 vértices com maior distância
  40. 40. Pontos Coincidentes, remove </li></ul>Obs: O algoritmo Mergehull 2D é necessário para uma implementação eficiente do algoritmo Mergehull 3D em ordem de complexidade.
  41. 41. Teoria: Mergehull 3D por Preparata e Hong <ul><li>Entrada n pontos
  42. 42. Ordena os pontos pelas coordenadas(x, y ou z)
  43. 43. Divide os pontos em n/2 conjuntos de pontos
  44. 44. Projeta-se os pontos em um dos planos XY, YZ ou XZ
  45. 45. Encontrar Tangente Superior ou Inferior por Mergehull 2D
  46. 46. A partir das tangentes cria-se um cilindro de faces tangentes aos dois poliedros
  47. 47. Une os dois poliedros com as faces tangentes removendo faces, arestas e vértices internos
  48. 48. Saída Fecho Convexo dos pontos iniciais </li></ul>
  49. 49. Teoria: Mergehull 3D por Preparata e Hong <ul>Repare que os poliedros serão formados pela projeção dos pontos nos casos Base da recursão por Mergehull 2D, uma vez que retornemos ao R³ teremos um tetraedro no caso mais comum. </ul>
  50. 50. Teoria Fecho Convexo 3D 2 poliedros quaisquer P1 P2
  51. 51. Teoria Fecho Convexo 3D Projeção em XY
  52. 52. Teoria Fecho Convexo 3D Encontra uma tangente (a,b) tal que a pertence a P1 e b pertence a P2
  53. 53. Teoria Fecho Convexo 3D tangente superior Retorna ao R³ Repare que a tangente não retorna obrigatoriamente em um mesmo plano P1 P2
  54. 54. Teoria Fecho Convexo 3D tangente superior Cria face artificial + (0, -1, 0) P1 P2
  55. 55. Teoria Fecho Convexo 3D 1º comparação tangente superior 1º Comparação: Qual ai em que ai pertence a P1 forma com (a,b) a face com maior ângulo convexo com a face artificial ou anterior P1 P2
  56. 56. Teoria Fecho Convexo 3D 1º comparação tangente superior 1º Comparação: Qual bi em que bi pertence a P2 forma com (a,b) a face com maior ângulo convexo com a face artificial ou anterior P1 P2
  57. 57. Teoria Fecho Convexo 3D 2º comparação tangente superior 2º Comparação: Escolhe uma das duas faces de P1 ou P2 que forma o maior ângulo convexo com a face anterior ou a face artificial(se for a primeira). Face tangente com vértice em B ângulo 90º P1 P2
  58. 58. Teoria: Mergehull 3D por Preparata e Hong <ul><li>A tangente inicial deve ser obrigatoriamente uma aresta do cilindro Convexo que une os dois poliedros
  59. 59. A tangente possui dois pontos 1 pertencente ao primeiro poliedro e o 2 pertencente ao segundo poliedro
  60. 60. Uma vez que tenhamos uma tangente aos poliedros podemos usar a idéia do algoritmo do embrulho para encontrar uma face inicial tangente porém de forma mais eficiente
  61. 61. Buscamos apenas em vértices vizinhos ao vértice que possui uma tangente(aresta) pertencente ao Fecho Convexo 3D
  62. 62. Quando concluirmos o cilindro tangente aos dois poliedros aplicamos a união 3D </li></ul>
  63. 63. Teoria: Mergehull 3D por Preparata e Hong <ul><li>A cada nova face devemos definir uma nova tangente ou aresta pertence ao fecho no caso de P1 e P2 a nova tangente
  64. 64. seria (a, bi )
  65. 65. O cilindro tangente será uma
  66. 66. intercalação de vértices de P1 e P2
  67. 67. Por exemplo: a1b2b4a2b6a6
  68. 68. Ao lado:
  69. 69. * o cilindro tangente sendo
  70. 70. formado(cima)
  71. 71. * Intercalação de Arestas dos
  72. 72. poliedros(baixo) </li></ul>
  73. 73. Função Chave União 3D Casos que precisam ser tratados: <ul><li>Poliedro com Polígono
  74. 74. Poliedro com Aresta
  75. 75. Poliedro com Vértice
  76. 76. Polígono com Polígono(Face)
  77. 77. Outros casos são tratados com Mergehull 2D </li></ul>
  78. 78. Casos Patológicos <ul><li>Pontos Colineares, retorna os 2 vértices com maior distância
  79. 79. Pontos Coincidentes, remove
  80. 80. Polígonos degenerados, descarta(face, sem perder vértices)
  81. 81. Pontos pertencem ao mesmo Plano,
  82. 82. triangulação
  83. 83. Projeção retorna uma linha ou ponto,
  84. 84. projeta-se em outro plano </li></ul>
  85. 85. Implementação <ul><li>Vetor, armazena vetor
  86. 86. Poligono, armazena polígono ou face
  87. 87. Poliedro, armazena poliedro
  88. 88. Desenha, desenha poliedro e polígonos
  89. 89. FC3D, aplica mergehull 2D
  90. 90. FC2D, aplica mergehull 3D
  91. 91. Mergelex, ordena os pontos </li></ul>
  92. 92. Casos de Uso: Cubo Pela fórmula de Euler: F + V = A + 2
  93. 93. Casos de Uso: Pirâmide Pela fórmula de Euler: F + V = A + 2
  94. 94. Casos de Uso: Octaedro Pela fórmula de Euler: F + V = A + 2
  95. 95. Casos de Uso: 2 Octaedros Pela fórmula de Euler: F + V = A + 2
  96. 96. Casos de Uso: 100 pontos aleatórios Pela fórmula de Euler: F + V = A + 2
  97. 97. Tema A implementação de um Tema para o trabalho basou-se em um modelo de papel do Sonic.
  98. 98. Tema: Sonic Cedido gentilmente por Gustavo Wilke. O Sonic é formado pela divisão por região do personagem em fechos convexos distintos.
  99. 99. Tema: Sonic
  100. 100. Tema: Sonic
  101. 101. Referências <ul>1. Chand, Kapur - An algorithm for convex polytopes – 1970. 2. Ronald Graham, - An Efficient Algorithm for Determining the Convex Hull of a Finite Point Set – 1972 3. A. Jarvis, - On the Identification of the Convex Hull of of a Finite Set of Points in the Plane – 1973 4. F. P. Preparata , S. J. Hong - Convex hulls of finite sets of points in two and three dimensions – 1977 5. Ottmann, Thomas – Computational Geometry – WS 2007/08 – Lecture 2 - Supplementary </ul>

×