Você está na página 1de 59

Geometria Computacional

Triangulao e conceitos afins

Exemplo: Caminho mais curto


Pode ser reduzido ao problema de encontrar o
caminho mais curto em um grafo (grafo de
visibilidade)
Resolve-se com algoritmos no geomtricos
Ex.: Algoritmo de Dijkstra

Algoritmos geomtricos podem dar uma soluo


mais eficiente

Eficincia dos Algoritmos


Complexidade assinttica de pior caso
Problema do Caminho mais curto
Algoritmo simples O (n2 log n)
Algoritmo complexo O (n log n)

Casos mdios
Difceis de se caracterizar
Requerem que se estipule uma distribuio
tpica

Muitas estruturas de dados e algoritmos


que se conjectura serem eficientes para
casos tpicos
Quadtrees em geral
BSP trees
5

Limitaes da Geometria Computacional


Dados discretos
Aproximaes de fenmenos contnuos
Funes quantizadas ao invs de funes
contnuas (e.g. imagens)

Objetos geomtricos planos


Aproximaes de geometrias curvas

Dimensionalidade
Normalmente, 2D e um pouco de 3D
Problemas n-dimensionais so pouco
abordados
6

Tcnicas usadas em GC
Tcnicas convencionais de desenho de
algoritmos
Dividir para conquistar
Programao dinmica

Tcnicas prprias para algoritmos


geomtricos

Varredura (plane sweep)


Construes randomizadas incrementais
Transformaes duais
Fractional Cascading
7

Tendncias
Muitas solues timas foram obtidas
mas as implementaes ...

Muito complicadas
Muito sensveis a casos degenerados
Problemas de preciso
Complexidade inaceitvel para problemas
pequenos

Foco em obter solues prticas


Algoritmos simples
Freqentemente randomizados

Tratamento de casos degenerados


Engenharia de software
8

Problemas Fecho Convexo


Menor polgono (poliedro) convexo que
contm uma coleo de objetos
(pontos)

Problemas - Intersees
Determinar intersees entre colees
de objetos

10

Problemas Triangulaes
Dividir domnios complexos em
colees de objetos simples
(simplexes)

11

Problemas Prog. Linear em 2d e 3d


Problemas de otimizao
Ex.: menor disco que contm um
conjunto de pontos

12

Problemas Arranjos de Retas


Dada uma coleo de retas, o grafo formado pelos
pontos de interseo e segmentos de reta entre eles
Problemas sobre pontos podem ser transformados em
problemas sobre retas (dualidade)

13

Problemas Diagramas de Voronoi e


Triangulaes de Delaunay
Dada uma coleo de pontos S
Diagrama de Voronoi delimita as regies de
pontos mais prximos
Triangulao de Delaunay o dual do D. V.

14

Problemas Busca Geomtrica


Algoritmos e estruturas de dados para
responder consultas geomtricas. Ex.:
Todos os objetos que interceptam uma
regio
Polgono
Disco

Par de pontos mais prximos


Vizinho mais prximo
Caminho mais curto

15

Geometria Afim
Composta dos elementos bsicos
escalares
pontos - denotam posio
vetores - denotam deslocamento (direo
e magnitude)

Operaes

escalar vetor = vetor


vetor + vetor ou vetor vetor = vetor
ponto ponto = vetor
ponto + vetor ou ponto vetor = ponto
16

Combinaes Afim
Maneira especial de combinar pontos
1P1 2 P2 ... n Pn
n

onde

i 1
i 1

Para 2 pontos P e Q poderamos ter uma


combinao afim R = (1 )P +Q = P +(P Q)
P

P
R= P+(P Q)

<0
0<<1

Q
>1
17

Combinaes Convexas
Combinaes afim onde se garante que
todos os coeficientes i so positivos (ou
zero)
Usa-se esse nome porque qualquer ponto
que uma combinao convexa de n outros
pontos pertence envoltria convexa desses
pontos
P2

P3

P1

P4

P5

18

Geometria Euclidiana
Extenso da geometria afim pela
adio de um operador chamado
produto interno
Produto interno um operador que
mapeia um par de vetores em um
escalar. Tem as seguintes
propriedades:
Positividade : (u,u) 0 e (u,u) = 0 sse u=0
Simetria: (u,v) = (v,u)
Bilinearidade: (u,v+w)= (u,v)+ (u,w) e
(u,v)= (u,v)
19

Geometria Euclidiana
Normalmente usamos o produto escalar
como operador de produto
interno:
d

u v ui vi
i 1

Comprimento de um vetor definido como:


v v v
Vetor unitrio (normalizado):

v
v
v

20

Geometria Euclidiana
Distncia entre dois pontos P e Q =|P Q |
O ngulo entre dois vetores pode ser
determinado por


1 u v
ngulo(u , v ) cos cos1 (u v)
uv

Projeo ortogonal: dados dois vetores u e v,


deseja-se decompor u na soma de dois
vetores u1 e u2 tais que u1 paralelo a v e u2
perpendicular
av
u

u v
u1 v u2 u u1
v v

u2

u1

v
21

Produto Vetorial (3D)


Permite achar um vetor perpendicular a outros
dois dados
til na construo de
de coordenadas
sistemas

u y v z u z v y i
j k

v
uv
u v u z vx u x vz u x u y u z
u
u x v y u y vx vx v y vz
.

Propriedades (assume-se u, v linearmente


independentes):
Antisimetria: u v = v u
Bilinearidade: u (v) = (u v) e u (v + w) = (u v) + (u
w)
u v perpendicular tanto a u quanto a v
O comprimento de u v igual a rea do paralelogramo 22
definido por u e v, isto , | u v | = | u | | v | sin

Sistemas de coordenadas
Um sistema de coordenadas para Rn
definido por um ponto (origem) e n vetores
Ex. Seja um sistema de coordenadas para
R2 definido pelo ponto O e os vetores X e
Y. Ento,
Um ponto P dado por coordenadas xP e yP tais
que

P x P . X y P .Y O
Um vetor V dado por coordenadas xV e yV tais
que

V xV . X yV .Y

23

Coordenadas Homogneas
Coordenadas homogneas permitem
unificar o tratamento de pontos e vetores
Problema levado para uma dimenso
superior:
Coordenada extra w= 0 para vetores e =1 p/
pontos
O significado da coordenada extra levar ou no
em considerao a origem do sistema

Coordenadas homogneas tm diversas


propriedades algbricas interessantes
Ex. Subtrao de dois pontos naturalmente
resulta em um vetor
24

Orientao
Orientao de 2 pontos em 1D
P1 < P2 , P1 = P2 ou P1 > P2

Orientao de 3 pontos em 2D
O percurso P1 , P2 , P3 feito no sentido dos
ponteiros do relgio, no sentido contrrio ou so
colineares
Or (P1, P2, P3) = -1
P1

Or (P1, P2, P3) = 0

Or (P1, P2, P3) = +1


P3

P3

P2
P3

P2

P1

P2

P1

25

Orientao
Orientao de 4 pontos em 3D
O percurso P1 , P2 , P3 , P4 define um
parafuso segundo a regra da mo direita,
mo esquerda ou so coplanares
Or (P1, P2, P3, P4) = +1
P3
P1
P4

P2

O conceito pode
ser estendido a
qualquer
nmero de
dimenses ...
26

Computando Orientao
A orientao de n+1 pontos em um espao
n-dimensional dado pelo sinal do
determinante da matriz cujas colunas so
as coordenadas homogneas dos pontos
com o 1 vindo primeiro
1

Or2 ( P1 , P2 , P3 ) sign x1
y
1

1
x2
y2

x3
y3

Or3 ( P1 , P2 , P3 , P4 ) sign

1
x1
y1
z1

1
x2
y2
z2

1
x3
y3
z3

1
x4
y4
z4

27

Geometria Computacional
Triangulaes

28

Problema
Dado um conjunto P de pontos do Rn, decompor o
seu fecho convexo conv(P ) num complexo
simplicial cuja unio seja conv(P ) e cujo conjunto
de vrtices contenha P.
No existe uma soluo nica para esse problema.
No plano, toda triangulao de conv(P) possui
exatamente (2n v 2) tringulos e (3n v 3)
arestas, onde v o nmero de pontos de P na
fronteira de conv(P), n a cardinalidade de P e a o
nmero de arestas.
Use a frmula de Euler para esfera:
V A + F = 2.
29

Problemas Triangulaes
Dividir domnios complexos em
colees de objetos simples
(simplexes)

30

Exemplo: Lago Superior

31

Deduo
O nmero de faces F igual ao nmero de
tringulos T + 1, pois tem-se de considerar a face
externa ilimitada no plano.
n a + (T + 1) = 2

Cada tringulo possui 3 arestas. Como cada


aresta aparece em 2 tringulos, arestas so
contadas duas vezes.
3T v 2a a

3T v
2

O Tamanho da soluo para o


3T v
n T 1
2
problema de triangulao linear
2
com o nmero de pontos
2n 2T 2 3T v 4
T 2n v 2 e a 3n - v - 3

Algoritmo Fora Bruta


Obtenha conv(P ) e triangule-o por
diagonais. Cada ponto que no esteja
na fronteira de conv(P ) inserido em
conv(P ) e o tringulo que o contm
subdividido.
Algoritmo O(n log n) para achar conv(P ).
Incluso de cada ponto O(n).
Algoritmo completo O(n2).

33

Problema Resolvido?
Embora todas as triangulaes de
conv(P ) tenham o mesmo nmero de
tringulos, a forma dos tringulos
muito importante em aplicaes
numricas.
Triangulao de Delaunay tem a
importante propriedade de, entre
todas as triangulaes de conv(P ),
maximizar o menor de todos os
ngulos internos dos tringulos.
Isso s verdade no R2.
34

Como Triangular?

Uma triangulao fornece uma


estrutura combinatria a um conjunto
de pontos.
Na realidade, um algoritmo de
triangulao fornece regras para
conectar pontos prximos.
A triangulao de Delaunay conecta
os pontos baseado em um nico
critrio: crculos vazios.
Conceitualmente simples e fcil de
implementar.
O critrio de proximidade vem do
Diagrama de Voronoi.
35

Triangulao de Delaunay

36

Triangulao de Delaunay

FLIP

37

Diagrama de Voronoi
uma partio do Rn em polgonos convexos
associados a um conjunto de stios (tesselao de
Dirichlet).
O conceito foi discutido em 1850 por Dirichlet e em
1908 num artigo do matemtico russo Georges
Voronoi.
a segunda estrutura mais importante em
Geometria Computacional perdendo apenas para o
fecho convexo.
Possui todas as informaes necessrias sobre a
proximidade de um conjunto de pontos.
a estrutura dual da triangulao de Delaunay.
38

Diagrama de Voronoi

39

Definies
Seja P = {p1,p2,...,pn} um conjunto de pontos do
plano euclidiano, chamados de stios. Particione o
plano atribuindo a cada ponto do plano o stio mais
prximo.
Todos os pontos associados a pi formam um
polgono de Voronoi V(pi):

V ( pi ) x : pi x p j x j i

O conjunto de todos os pontos associados a mais


de um stio forma o diagrama de Voronoi Vor(P ).

40

Dois Stios
Sejam p1 e p2 dois stios e B(p1, p2) =
B12 a mediatriz do segmento p1p2.
Cada ponto x B12 eqidistante de p1 e
p2 (congruncia lado-ngulo-lado).
x

p2

p1
B12
41

Trs Stios
A menos do tringulo (p1, p1, p3), o diagrama
contm as mediatrizes B12, B23, B31.
As mediatrizes dos lados de um tringulo se
encontram no circuncentro do crculo nico que
passa pelos trs vrtices (Euclides).
B23

p2
p3

B12
p1

42

B31

Semi-planos
A generalizao para mais de trs pontos
corresponde ao local geomtrico da interseo dos
semi-planos fechados H(pi, pj), dos pontos mais
prximos de pi do que de pj.

V ( pi ) H ( pi , p j )
i j

43

Voronoi de 7 pontos
7 pontos definem o mesmo
nmero de polgonos de
Voronoi.
Um dos polgonos limitado
porque o stio correspondente
est completamente cercado
por outros stios.
Cada ponto do R2 possui pelo
menos um vizinho mais
prximo. Logo, ele pertence a
pelo menos um polgono de
Voronoi.
Assim, o diagrama de
Voronoi cobre
completamente o plano.
44

Teoremas
Os polgonos de Voronoi correspondentes a
um par de pontos xi e xj possuem uma aresta
comum, se e somente se existem pontos
(aqueles da aresta comum) que so
eqidistantes dos pontos xi e xj que esto
mais prximos deles do que de qualquer
outro ponto de P.
Um polgono de Voronoi ilimitado se
somente se o ponto correspondente xi
pertencer fronteira de conv(P ).

45

Crculos Vazios
Todo vrtice v de Vor(P ) comum a pelo
menos trs polgonos de Voronoi e centro
de um crculo C (v) definido pelos pontos de
P correspondentes aos polgonos que se
encontram em v. Alm disso, C (v) no
contm nenhum outro ponto de P.
Os pontos de P esto em posio geral se
nenhum sub-conjunto de P contm 4
B23
pontos co-circulares.
p2
p3

B12
p1

46

B31

Algoritmo para Voronoi


Pode-se determinar os conjuntos
T1,T2,...,Tt de P que determinam
crculos vazios para construir Vor(P ).
Cada Tk formado por trs ou mais
pontos co-circulares de P.
Se os pontos de P esto em posio geral,
todo Tk contm exatamente 3 stios de P.
As arestas de Vor(P ) so os segmentos
mediatrizes correspondentes a pontos
consecutivos dos Tk.
Uma vez conhecidos todos os Tk, Vor(P )
pode ser determinado em tempo linear.
47

Ligao entre Voronoi e Delaunay


No diagrama de Voronoi cada stio est
associado a um polgono (face) de Vor(P ).
O grafo dual tem por vrtices os stios de
Vor(P ), e por arestas os pares de stios
cujos polgonos so vizinhos.
O grafo dual Chamado de triangulao
de Delaunay Del(P ).
Dois stios xi e xj determinam uma aresta
de Del(P ) se e somente se existe um
crculo C contendo xi e xj tal que todos os
outros stios sejam exteriores a C.
48

Triangulao de Delaunay
Em 1934, o matemtico russo Boris
Delaunay provou que quando o grafo dual
desenhado com linhas retas ele produz uma
triangulao dos stios do diagrama de
Voronoi (supostos estarem em posio
geral).
No bvio que as arestas de Del(P ) no se
cruzam, j que uma aresta entre dois stios
no cruza, necessariamente, a aresta de
Voronoi correspondente.
49

Propriedades de Delaunay
D1. Del(P ) o dual com arestas retilneas de Vor(P ).
D2. Del(P ) uma triangulao se nenhum grupo de 4
pontos forem co-circulares. Cada face um
tringulo (teorema de Delaunay).
D3. Cada tringulo de Del(P ) corresponde a um
vrtice de Vor(P ).
D4. Cada aresta de Del(P ) corresponde a uma aresta
de Vor(P ).
D5. Cada vrtice de Del(P ) corresponde a um polgono
(face) de Vor(P ).
D6. A fronteira de Del(P ) o fecho convexo dos stios.
D7. O interior de cada tringulo (face) de Del(P ) no
contm stios.
50

Propriedades de Voronoi
V1. Todo polgono V(pi) de Voronoi convexo.
V2. V(pi) ilimitado se e s se pi est no fecho
convexo.
V3. Se v for um vrtice de Voronoi na juno de V(p1),
V(p2), V(p3) ento v o centro do crculo C(v) que
passa por p1, p2, p3.
V4. C(v) o crculo circunscrito ao tringulo
correspondente a v.
V5. C(v) vazio (no contm outros stios).
V6. Se pi for o vizinho mais prximo de pj, ento pipj
uma aresta de Del(P ).
V7. Se existir um crculo vazio passando por pi e pj,
ento pipj uma aresta de Del(P ).
51

Cotas
O diagrama de Voronoi de um conjunto P com n
stios tem no mximo 2n-5 vrtices e 3n-6 arestas.
O maior nmero de arestas ocorre quando todas
as faces de Del(P ) so triangulares e conv(P )
tambm um tringulo (substitua v por 3).
Diagrama de Voronoi e triangulao de
Delaunay so redutveis um ao outro em tempo
linear.
Embora o diagrama de Delaunay no produza
sempre uma triangulao, caso os pontos no
estejam em posio geral, cada regio convexa
Rk com m vrtices pode ser triangulada por m-3
diagonais.
52

Cota Inferior
O diagrama de Voronoi fornece uma
triangulao de conv(P ) em tempo
linear.
O problema de ordenao pode ser
reduzido ao problema de triangulao.
Dados { x1,x2,...,xn } crie P = { (0,0), p1, p2,
..., pn } onde pi = (xi,1).
Logo, Voronoi e Delaunay (n log n).

53

Qualidade dos Tringulos


Seja T uma triangulao de um conjunto de pontos
S, e seja a seqncia angular (1, 2, ..., 3t) a lista
dos ngulos dos tringulos ordenada em ordem
crescente (t o nmero de tringulos).
t constante para cada S.
T > T se a seqncia angular de T for maior
lexicograficamente do que a de T.
A triangulao de Delaunay T = Del(P )
maximal em relao forma angular: T T
para qualquer outra triangulao T de P
(Edelsbrunner 1987).
Maximiza o menor ngulo.
54

55

Algoritmos para Triangulao de


Delaunay

Pode-se construir uma triangulao de Delaunay


em O(n2).
Um algoritmo complexo para encontrar o
diagrama de Voronoi em O(n log n) foi detalhado
por Shamos e Hoey (1975).
Usa dividir para conquistar.
Este artigo introduziu o diagrama de Voronoi
comunidade de computao.
O algoritmo muito difcil de implementar, mas
pode ser feito utilizando-se uma estrutura de
dados adequada, como a Quadedge de Guibas
e Stolfi (1985).
Algoritmo incremental costuma ser muito usado
por ser mais fcil de implementar, mas tambm
O(n2).
Se for randomizado o tempo mdio O(n log n).

Triangulao de Delaunay Restrita


Muitas vezes necessrio triangular um
grafo planar retilneo (GPR).
Basicamente, arestas s se intersectam
em vrtices, que fazem parte do grafo.
A triangulao de Delaunay cega para as
arestas de um GPR, que podem aparecer na
triangulao final ou no.
Triangulao de Delaunay restrita (TDR)
similar a triangulao de Delaunay, mas
todos os segmentos do GPR devem aparecer
na triangulao final.
56

Exemplo
GPR

Triangulao de Delaunay

TDR

57

Ponto dentro de um crculo


Quando um ponto D est dentro de
circuncrculo de um tringulo (ABC)?
Avaliando-se o determinante:

Assumindo que A,B,C esto no sentido


anti-horrio. O determinante positivo
sse D est dentro do circuncrculo.
Se o tringulo no-Delaunay, FLIP!
[O(n2)]

58

Atividade
A Winged-Edge adequada para se
implementar Voronoi ou Delaunay?
Pesquise e relate as vantagens de se
utilizar Quad-Edge (em termos
computacionais).
Implementar Delaunay para a
atividade do terreno.

60

Você também pode gostar