Tendências Futuras: Automação baseada em robótica para fabricação, montagem e inspeção
Mergehull3d
-
Upload
rafael-siqueira-telles-vieira -
Category
Technology
-
view
1.114 -
download
0
description
Transcript of Mergehull3d
Mergehull 3DFecho Convexo no R³
por Rafael Vieira
CRAb – Grupo de Computação Gráfica
Departamento de Computação
UFC
2
Sumário
Histórico Teoria Implementação Estudos de Caso Tema Dificuldades Referências
3
HIstórico
Chand-Kappur desenvolvem o algoritmo do Embrulho que é eficiente para n pontos em uma dimensão arbitrária 1970 [1]
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 emO(nlogn) [4]
Preparata - An Wang Professor of Computer Science
4
Teoria: Fecho Convexo
Fecho Convexo
5
Teoria: Mergehull 2Dpor Preparata e Hong
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
6
Teoria: Fecho Convexo 2D
Divisão e Conquista
7
Teoria: Fecho Convexo 2D
i=0 i=1i=1 i=2 i=2i=2i=2
8
Teoria: Fecho Convexo 2D
i=0 i=1i=1 i=2 i=2i=2i=2
9
Teoria: Fecho Convexo 2D
i=0 i=1i=1Tang inferiorTang superior
10
Teoria: Fecho Convexo 2D
i=0Tang inferiorTang superior
11
Teoria: Fecho Convexo 2D
i=0Tang inferiorTang superior
12
Teoria: Fecho Convexo 2D
i=0Tang inferiorTang superior
13
Teoria: Fecho Convexo 2D
Tang inferiorTang superior
14
Teoria: Fecho Convexo 2D
Tang inferiorTang superior
15
Teoria: Fecho Convexo 2D
Tang inferiorTang superior
16
Função Chave União 2D
Casos que precisam ser tratados:
Polígono com Aresta
Polígono com Vértice
Aresta com Aresta
Aresta com Vértice
Vértice com Vértice
17
Casos Patológicos
Pontos Colineares, retorna os 2 vértices com maior distância
Pontos Coincidentes, remove
Obs: O algoritmo Mergehull 2D é necessário para uma implementação eficiente do algoritmo Mergehull 3D em ordem de complexidade.
18
Teoria: Mergehull 3Dpor Preparata e Hong
Entrada n pontos Ordena os pontos pelas coordenadas(x, y ou z)
Divide os pontos em n/2 conjuntos de pontos
Projeta-se os pontos em um dos planos XY, YZ ou XZ
Encontrar Tangente Superior ou Inferior por Mergehull 2D
A partir das tangentes cria-se um cilindro de faces tangentes aos dois poliedros
Une os dois poliedros com as faces tangentes removendo faces, arestas e vértices internos
Saída Fecho Convexo dos pontos iniciais
19
Teoria: Mergehull 3Dpor Preparata e Hong
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.
20
Teoria Fecho Convexo 3D
P1P2
2 poliedros quaisquer
21
Teoria Fecho Convexo 3D
Projeção em XY
P1 P2
22
Teoria Fecho Convexo 3D
Encontra uma tangente (a,b) tal que a pertence a P1 e b pertence a P2
P1 P2
23
Teoria Fecho Convexo 3D
P1P2
tangente superior Retorna ao R³
Repare que a tangente não retorna obrigatoriamente em um mesmo plano
24
Teoria Fecho Convexo 3D
P1 P2
tangente superior Cria face artificial + (0, -1, 0)
25
Teoria Fecho Convexo 3D1º comparação
P1 P2
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
26
Teoria Fecho Convexo 3D1º comparação
P1 P2
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
27
Teoria Fecho Convexo 3D2º comparação
P1 P2
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érticeem B ângulo 90º
28
Teoria: Mergehull 3Dpor Preparata e Hong
A tangente inicial deve ser obrigatoriamente uma aresta do cilindro Convexo que une os dois poliedros
A tangente possui dois pontos 1 pertencente ao primeiro poliedro e o 2 pertencente ao segundo poliedro 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
Buscamos apenas em vértices vizinhos ao vértice que possui uma tangente(aresta) pertencente ao Fecho Convexo 3D
Quando concluirmos o cilindro tangente aos dois poliedros aplicamos a união 3D
29
Teoria: Mergehull 3Dpor Preparata e Hong
A cada nova face devemos definir uma nova tangente ou aresta pertence ao fecho no caso de P1 e P2 a nova tangenteseria (a, bi)
O cilindro tangente será umaintercalação de vértices de P1 e P2
Por exemplo: a1b2b4a2b6a6
Ao lado:
* o cilindro tangente sendoformado(cima)
* Intercalação de Arestas dospoliedros(baixo)
30
Função Chave União 3D
Casos que precisam ser tratados:
Poliedro com Polígono
Poliedro com Aresta
Poliedro com Vértice
Polígono com Polígono(Face)
Outros casos são tratados com Mergehull 2D
31
Casos Patológicos
Pontos Colineares, retorna os 2 vértices com maior distância
Pontos Coincidentes, remove
Polígonos degenerados, descarta(face, sem perder vértices)
Pontos pertencem ao mesmo Plano, triangulação
Projeção retorna uma linha ou ponto,projeta-se em outro plano
32
Implementação
Vetor, armazena vetor
Poligono, armazena polígono ou face
Poliedro, armazena poliedro
Desenha, desenha poliedro e polígonos
FC3D, aplica mergehull 2D
FC2D, aplica mergehull 3D
Mergelex, ordena os pontos
33
Casos de Uso: Cubo
Pela fórmula de Euler:
F + V = A + 2
34
Casos de Uso: Pirâmide
Pela fórmula de Euler:
F + V = A + 2
35
Casos de Uso: Octaedro
Pela fórmula de Euler:
F + V = A + 2
36
Casos de Uso: 2 Octaedros
Pela fórmula de Euler:
F + V = A + 2
37
Casos de Uso: 100 pontos aleatórios
Pela fórmula de Euler:
F + V = A + 2
38
Tema
A implementação de um Tema para o trabalho basou-se em um modelo de papel do Sonic.
39
Tema: Sonic
Cedido gentilmente por Gustavo Wilke.
O Sonic é formado pela divisão por região do personagem em fechos convexos distintos.
40
Tema: Sonic
41
Tema: Sonic
42
Referências
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