You are on page 1of 27

2002 LCG/UFRJ. All rights reserved.

1
Geometria Computacional
Claudio Esperana
Paulo Roma Cavalcanti
2002 LCG/UFRJ. All rights reserved.
2
Estrutura do Curso
Aspectos tericos e prticos
Construo e anlise de algoritmos e
estruturas de dados para a solucionar
problemas geomtricos
Implementao
Programas em C++ / STL
Uso da biblioteca CGAL (www.cgal.org)
2002 LCG/UFRJ. All rights reserved.
3
O que Geometria Computacional?
Origem do termo
(?) Livro Perceptronde Marvin Minsky
Usado para denotar algoritmos de modelagem de
slidos
Campo da teoria de algoritmos
Entradas so colees de objetos geomtricos
Normalmente, objetos planos tais como pontos, retas,
polgonos, poliedros
Sadas so estruturas de dados geomtricos
Surgiu do campo dos algoritmos discretos
At hoje h nfase em problemas de matemtica
discreta (conjuntos de objetos, grafos)
Componente geomtrica pode oferecer subsdios
para solues mais eficientes

2002 LCG/UFRJ. All rights reserved.
4
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

2002 LCG/UFRJ. All rights reserved.
5
Eficincia dos Algoritmos
Complexidade assinttica de pior caso
Problema do Caminho mais curto
Algoritmo simples O (n
2
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

2002 LCG/UFRJ. All rights reserved.
6
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
2002 LCG/UFRJ. All rights reserved.
7
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

2002 LCG/UFRJ. All rights reserved.
8
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

2002 LCG/UFRJ. All rights reserved.
9
Problemas Fecho Convexo
Menor polgono (poliedro) convexo que
contm uma coleo de objetos
(pontos)
2002 LCG/UFRJ. All rights reserved.
10
Problemas - Intersees
Determinar intersees entre colees
de objetos
2002 LCG/UFRJ. All rights reserved.
11
Problemas Triangulaes
Dividir domnios complexos em
colees de objetos simples
(simplexes)
2002 LCG/UFRJ. All rights reserved.
12
Problemas Prog. Linear em 2d e 3d
Problemas de otimizao
Ex.: menor disco que contm um
conjunto de pontos
2002 LCG/UFRJ. All rights reserved.
13
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)
2002 LCG/UFRJ. All rights reserved.
14
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.
2002 LCG/UFRJ. All rights reserved.
15
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

2002 LCG/UFRJ. All rights reserved.
16
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
2002 LCG/UFRJ. All rights reserved.
17
Combinaes Afim
Maneira especial de combinar pontos



Para 2 pontos P e Q poderamos ter uma
combinao afim R = (1 o)P +oQ = P +o(P Q)



1 onde
...
1
2 2 1 1
=
+ + +

=
n
i
i
n n
P P P
o
o o o
P
Q
R= P+o(P Q)
P
Q
0 < o < 1
o < 0
o > 1
2002 LCG/UFRJ. All rights reserved.
18
Combinaes Convexas
Combinaes afim onde se garante que
todos os coeficientes o
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

P
1
P
2
P
3
P
4
P
5
Q

2002 LCG/UFRJ. All rights reserved.
19
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,ov)= o(u,v)
2002 LCG/UFRJ. All rights reserved.
20
Geometria Euclidiana
Normalmente usamos o produto escalar
como operador de produto interno:


Comprimento de um vetor definido como:


Vetor unitrio (normalizado):

=
=
d
i
i i
v u v u
1

v v v

=
v
v
v

=
2002 LCG/UFRJ. All rights reserved.
21
Geometria Euclidiana
Distncia entre dois pontos P e Q =|P Q |
O ngulo entre dois vetores pode ser
determinado por


Projeo ortogonal: dados dois vetores u e v,
deseja-se decompor u na soma de dois
vetores u
1
e u
2
tais que u
1
paralelo a v e u
2

perpendicular a v
) ( cos cos ) , (
1 1
v u
v u
v u
v u ngulo =
|
|
.
|

\
|

=




1 2 1
u u u v
v v
v u
u


=
v
u
u
1

u
2

2002 LCG/UFRJ. All rights reserved.
22
Produto Vetorial (3D)
Permite achar um vetor perpendicular a outros
dois dados
til na construo de sistemas de coordenadas

z y x
z y x
x y y x
z x x z
y z z y
v v v
u u u
k j i
v u v u
v u v u
v u v u
v u



=
(
(
(

=
Propriedades (assume-se u, v linearmente
independentes):
Antisimetria: u v = v u
Bilinearidade: u (ov) = o (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
definido por u e v, isto , | u v | = | u | | v | sin u
u
v
uv
.
2002 LCG/UFRJ. All rights reserved.
23
Sistemas de coordenadas
Um sistema de coordenadas para R
n

definido por um ponto (origem) e n vetores
Ex. Seja um sistema de coordenadas para
R
2
definido pelo ponto O e os vetores X e
Y. Ento,
Um ponto P dado por coordenadas x
P
e y
P
tais
que


Um vetor V dado por coordenadas x
V
e y
V
tais
que

O Y y X x P
P P
+ + = . .
Y y X x V
V V
. . + =
2002 LCG/UFRJ. All rights reserved.
24
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
2002 LCG/UFRJ. All rights reserved.
25
Orientao
Orientao de 2 pontos em 1D
P
1
< P
2
, P
1
= P
2
ou P
1
> P
2

Orientao de 3 pontos em 2D
O percurso P
1
, P
2
, P
3
feito no sentido dos
ponteiros do relgio, no sentido contrrio ou so
colineares

P
1
P
3
P
2
P
3
P
1
P
2
P
3
P
2
P
1
Or (P
1
, P
2
, P
3
) = +1
Or (P
1
, P
2
, P
3
) = -1
Or (P
1
, P
2
, P
3
) = 0
2002 LCG/UFRJ. All rights reserved.
26
Orientao
Orientao de 4 pontos em 3D
O percurso P
1
, P
2
, P
3
, P
4
define um
parafuso segundo a regra da mo direita,
mo esquerda ou so coplanares

P
1
P
4
P
2
Or (P
1
, P
2
, P
3
, P
4
) = +1
P
3
O conceito pode
ser estendido a
qualquer
nmero de
dimenses ...

2002 LCG/UFRJ. All rights reserved.
27
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
|
|
|
.
|

\
|
=
3 2 1
3 2 1 3 2 1 2
1 1 1
sign ) , , ( Or
y y y
x x x P P P
|
|
|
|
|
.
|

\
|
=
4 3 2 1
4 3 2 1
4 3 2 1
4 3 2 1 3
1 1 1 1
sign ) , , , ( Or
z z z z
y y y y
x x x x
P P P P

You might also like