Introduc¸ ˜

ao Quad-Edge

Algoritmo

Resultado

Conclus˜ ao

Leonardo Seperuelo Duarte

Instituto Nacional de Matem´atica Pura e Aplicada Departamento de Computac¸ ˜afica -IMPA ao Gr´

26 de novembro de 2008

Motivac¸ ˜

ao

Definic¸ ˜

ao

Primitivas Geom´

etricas

2 Quad-Edge

  1. Estrutura

  2. Operadores Topol´

ogicos

Dualidade

3 Algoritmo

Divis˜

ao e Conquista

4

Resultado

Conclus˜

5 ao

˜

Introduc¸ao

˜

Motivac¸ao

Definic¸ ˜

ao Primitivas Geom´ etricas

Quad-Edge

Estrutura Operadores Topol´

ogicos Dualidade

Algoritmo

Divis˜ ao e Conquista

Resultado
Conclus˜

ao

¸˜¸˜

Interpolacao de dados discretos para aproximacao de

terrenos.

¸˜

Localizacao de centros de servic¸os.

Construc¸ ˜¸ ˜

ao de malhas para aplicacao de FEM.

Obtenc¸ ˜

ao direta de resultados como, EMST, PMP, GG e o diagrama de Voronoi.

˜

Introduc¸ao

˜

Motivac¸ao

Definic¸ ˜

ao

Primitivas Geom´

etricas

Quad-Edge

Estrutura Operadores Topol´

ogicos Dualidade

Algoritmo

Divis˜ ao e Conquista

Resultado
Conclus˜

ao

˜

Introduc¸ao

˜
Definic¸ ˜

Motivac¸ao

ao

Primitivas Geom´

etricas

Quad-Edge

Estrutura Operadores Topol´

ogicos Dualidade

Algoritmo

Divis˜ ao e Conquista

Resultado
Conclus˜

ao

Principal primitiva geom´

etrica para o c´

o ponto D est´

a no

interior do c´ırculo orientado definido por ABC.

InCircle(A, B, C, D) ´

e equivalente ao determinante abaixo. Pontos abaixo do plano, que intercepta o parabol´ao

oide, s˜

projetados no interior do c´ırculo x-y em R2.

CCW(A, B, C) determina se o ponto C esta´`a esquerda do

segmento AB.
Para pontos colineares o resultado ´

e falso.

˜

1 Introduc¸ao

˜

Definic¸ ˜

Motivac¸ao

ao

Primitivas Geom´

etricas

2 Quad-Edge

  1. Estrutura

  2. Operadores Topol´

ogicos

Dualidade

3 Algoritmo

Divis˜

ao e Conquista

4

Resultado

Conclus˜

5 ao

Lista de pol´ıgonoCada um com as coordenadas de todos os seus v´

ertices. -Redundˆ¸˜

ancia de informacoes e ineficiente na busca pela vizinhanc¸a.

Lista de v´

ertices e faces
-

ertices amazenados separadamente e faces apontando para os v´

ertices. -Diminui a redundˆem a vizinhanc´

ancia, por´¸a de um vertice ainda tem que consultar toda a lista de faces.

As duas estruturas acima precisam de informac¸ ˜

oes
topol´encias.

ogicas de adjacˆ

Cada aresta formada por 4 componentes.

Seus v´

ertices extremos e suas faces adjacentes.

˜

1 Introduc¸ao

˜

Definic¸ ˜

Motivac¸ao

ao

Primitivas Geom´

etricas

2 Quad-Edge

  1. Estrutura

    1. Operadores Topol´

    2. ogicos
  2. Dualidade

3 Algoritmo

Divis˜

ao e Conquista

4

Resultado

Conclus˜

5 ao

e Org() retorna o v´

ertice origem da aresta

e Dest() retorna o v´

ertice destino da aresta e.

e Left() retorna a face `

a esquerda da aresta e.

e Right() retorna a face `

a direita da aresta e.

Todas as operac¸ ˜

oes com custo O(1).

Sentido CCW -Lnext()/Rnext() aresta com mesma face `

a esquerda/direita. -Onext()/Dnext() aresta com mesmo vertice origem/destino.

´Sentido CW -Lprev()/Rprev() aresta com mesma face `

a esquerda/direita. -Oprev()/Dprev() aresta com mesmo v´

ertice origem/destino.

MakeEdge()
-Org s1 e Dest s2.

←←

-Left face e Right face.

←←

Splice(Edge* a, Edge* b) -Se g = b Org

→→

separa em dois pedac¸os. -Se a Org = b Org combina em apenas um.

˜

1 Introduc¸ao

˜

Definic¸ ˜

Motivac¸ao

ao

Primitivas Geom´

etricas

2 Quad-Edge

  1. Estrutura

    1. Operadores Topol´

    2. ogicos
  2. Dualidade

3 Algoritmo

Divis˜

ao e Conquista

4

Resultado

Conclus˜

5 ao

Dual geom´

-Faces de Voronoi Vertices de Delaunay.

´-Faces de Delaunay.

ertices de Voronoi -Arestas de Voronoi Arestas de Delaunay.

Estrutura j´a considera a dualidade.

alculo de Delaunay.

alculo de Voronoi junto com o c´-eSym() aresta no sentido oposto. -eRot() aresta dual da direita para a esquerda. -eInvRot() aresta dual da esquerda para a direita.

˜

1 Introduc¸ao

˜

Definic¸ ˜

Motivac¸ao

ao

Primitivas Geom´

etricas

2 Quad-Edge

  1. Estrutura

  2. Operadores Topol´

ogicos

Dualidade

3 Algoritmo

Divis˜

ao e Conquista

4

Resultado

Conclus˜

5

Ordenac¸ ˜afica.

ao lexicogr´

  1. S = 2, apenas MakeEdge().

  2. S = 3.
    -aMakeEdge().
    -bMakeEdge().
    -cConnect(b, a).

-Caso CCW(a, b, c), nova face `

a esquerda.

S > 3, chama o algoritmo para S 2e S 2

ldo, ldi] delaunay(L)

[rdi, rdo] delaunay(R)

Encontrar a aresta basel.

baselConnect(rdiSym, ldi).

←→

Merge loop -lcand e v´InCircle para lcand e basel.´alida

-Caso n˜ao destru´

ao respeite, lcand e sua Left s˜ıdas. -Os passos feitos para lcand

rcand. -Caso lcand e rcand sobrevivam, InCircle decide: -Connect(rcand, baselSym)

-Connect(baselSym, lcandSym)

→→

Quando lcand e rcand n˜ao mais v´

ao s˜alidas.

O algoritmo termina retornando e e re

Complexidade da O(nlog(n)).

  1. Estrutura Quad-Edge de grande utilidade, armazenando o dual.

  2. Possibilidade de c´

alculo de Delaunay e Voronoi juntos.

Complexidade O(nlog(n)).

Informac¸ ˜ogicas em O(1).

oes topol´

Algoritmo de divis˜ao e conquista fica compacto e simples.

Maior dificuldade em entender e utilizar a estrutura
topol´

ogica Quad-Edge.