Escolar Documentos
Profissional Documentos
Cultura Documentos
Interseces geomtricas:
Geometria e
Programao Geomtrica
Orientao
Como fazer com que um F1 aponte para os boxes?
Transformao
Mudana de coordenadas
como desenhar as rodas, uma de cada vez?
Carlos Hitoshi Morimoto (hitoshi@ime.usp.br)
Programao geomtrica
Existem muitas reas da Cincia da
Computao que exigem o uso de
entidades geomtricas
Computao grfica
CAD - computer aided design
Robtica
Viso computacional
GIS - geografic information systems
Geometria e CG
Reflexo e refrao
Programao independente de
coordenadas
Tony DeRose
desenvolveu um mtodo de programao geomtrica
independente de coordenadas, o que simplifica o
raciocnio geomtrico.
Ou seja, ao invs de matrizes, utilizaremos operadores
geomtricos de alto nvel (esses sim, so implementados
com matrizes)
Mas antes,
Geometria
um pouco de histria...
Afim
Geometrias
Outras geometrias
Geometria Afim
Pontos x Vetores
Convenes
Combinaes
Combinaes afins
QuickTime and a
decompressor
are needed to see this picture.
Combinaes afims
Operaes afins
u+v
R+v
P-Q
R
Soma de
vetores
Subtrao
de pontos
Soma de
ponto e vetor
Solues
R = P + (Q - P)
R = (1 - )P + aQ
(escala de Q - P)
(mdia ponderada)
Combinao afim
Exerccios
Onde a i(i) = 1
Combinao convexa
uma combinao afim
onde todo
est no intervalo [0,1]
Notao
Geometria
Euclidiana
Ortogonalidade
u e v so ortogonais (ou perpendiculares) se <u.v> == 0
Positividade
<u.u> >= 0 e <u.u> == 0 iff u == 0;
Simetria
<u.v> == <v.u>
Bilinearidade
<u. (v+w)> == <u.v> + <u.w> e <u. v> == <u.v>
onde um escalar
u1 = v <u.v> / <v.v>
u2 = u - u1
Produto escalar
Produto escalar
<u.v> = (ui.vi)
Comprimento de um vetor
|v| = sqrt[ <v.v> ]
Produto Escalar
Sistema de Coordenadas
QuickTime and a
decompressor
are needed to see this picture.
Sistema de coordenadas
QuickTime and a
decompressor
are needed to see this picture.
Combinao linear
Base padro
Frame de coordenadas
Em um espao afim, precisamos de uma forma de
representar pontos alm de vetores.
Um frame de coordenadas em um espao afim ddimensional ser definido por uma base ortonormal ddimensional e um ponto de origem, de forma que um
ponto P em 3D pode ser representado como:
P = !!i + !!j + !!k + O
Coordenadas Homogneas
Observaes
Primeiro, um axioma, para facilitar nossa forma
de notao:
0 * P = vetor nulo
1*P=P
Conveno:
sistema de coord. universal: frame padro fixo,
ortonormal: e0, e1, e2, O
Exemplo
Generalizao
w[F] =
P[F] =
P[F] = M P[G]
Portanto: P[G] = M-1 P[F]
w[G] =
P[G] =
Transformao Afim
uma classe de transformaes que inclue:
rotao
translao
escala (uniforme e no uniforme)
reflexo
shearing
Propriedades:
todas as transformaes preservam combinaes afins entre
pontos
R = (1 - )P + Q => T(R) = (1-)T(P) + T(Q)
Transformaes
Reflexo
2D: dada uma linha em um plano, a reflexo troca os pontos
de lado simetricamente ao longo dessa linha.
3D: dado um plano em 3D, a reflexo troca os pontos de lado
simetricamente ao longo desse plano.
Pode ser considerado como um caso particular de
escalonamento, em que o fator de escala negativo
Rotao
definida para um ponto ou vetor, fixos no espao.
casos bsicos: rotao na origem, ao redor dos vetores
bases, segundo a regra da mo direita.
Representao matricial
As combinaes afins so preservadas, portanto:
Transformaes
Translao
translao por um vetor v mapeia qualquer ponto P para P +
v.
vetores no so afetados por translao
Mudana de escala
Mudana de escala uniforme feita com relao a um ponto.
Consideraremos a origem do frame padro.
dado um escalar , esta transformao mapeia um objeto
(ponto ou vetor) de coordenadas (!,! ,! ,! )T para
(!,! ,! ,! )T
para mudana no uniforme: (!!,!! ,!!
,! )T
Transformaes
Rotao ao redor de z
a origem e o vetor z no so alterados
o vetor unitrio x mapeado para (cos!, sin!, 0,
0)T
o vetor unitrio y mapeado para (-sin!,cos!, 0,
0)T
semelhante para os demais vetores de base
Cizalhamento (Shearing)
pense em shearing como uma transformao que
mapeia um cubo em um paralelogramo (fixe uma
face do cubo, e desloque a face oposta, deformando
as faces laterais).
Transformaes
Shearing
xy-shear: o ponto P = (px, py, pz, 1)T transladado
pelo vetor pz(shx, shy, 0, 0)T, esse vetor ortogonal ao
eixo z e seu comprimento proporcional a
coordenada z do ponto P.
analogamente para xz e yz-shear.
Composio de transformaes
transformaes afins so fechadas sob composio,
ou seja, composies de transformaes afins resulta
em uma transformao afim.
T, S transformaes: (T.S)(P) = (T(S(P))),
ou em notao matricial: MT MS P
Transformaes
Transformaes complexas podem ser resolvidas por:
composies de transformaes simples
determinao da imagem dos elementos da base.
em geral, esse mtodo mais simples
Casos especiais:
Transformaes rgidas ou Euclidianas: so
transformaes que preservam ngulos e
comprimentos. Exemplo: translao, rotao e
reflexo.
Transformaes ortogonais ou homotticas: preservam
ngulos, mas no comprimentos. Exemplo:
escalonamento uniforme.
Produto Vetorial
O produto vetorial comumente definido no
espao 3D, pois ele se aplica apenas a vetores e
no a pontos.
Dado 2 vetores u, v, o produto vetorial definido
como:
u x v = (uyvz - uzvy, uzvx-uxvz, uxvy-uyvx)T
definio vale para um par de vetores no espao
3D
Determinante: u x v = (e | u | v) T
e : vetores da base
Outras propriedades do PV
Perpendicularidade: (u x v) perpendicular a u e
a v (u e v linearmente independentes).
ngulo e rea: |u x v| = |u| |v| sin !
ngulo entre u e v: !
em geral o PV no usado para calcular ! pois o
produto escalar mais simples de calcular.
|u x v| igual a rea do paralelograma cujos lados
so dados por u e v.
Orientao
Dados dois nmeros reais p e q, uma funo
possvel de orientao pode ser dado por:
Or(p,q) = sign(q - p)
Como estender esse conceito para dimenses
superiores?
Em um espao d-dimensional, a orientao de
(d+1) pontos pode ser definida pelo sinal do
determinante da matriz composta pelas suas
coordenadas homogneas.
Interpretao
Para um plano, a orientao de 3 pontos (P,Q,R)
+1 se o tringulo PQR orientado no sentido
anti-horrio, -1 se orientado no sentido horrio, e
0 se forem colineares.
Em 3D, uma orientao positiva dos pontos
PQRS significa que eles seguem uma espiral
direita (mo direita), e zero se forem coplanares.
Porque a coordenada homognea primeiro?
caso contrrio o sinal de determinante seria alternado para dimenses
pares e impares
Interseco de linhas
Dado dois segmentos de linha PQ e RS em um plano,
determinar se eles se intersectam.
possveis problemas: linhas paralelas, junes, linhas
colineares, etc.
simplificao: apenas interseces prprias (IP), com um
nico ponto em comum no interior dos segmentos.
se 3 pontos forem colineares, os segs no formam
uma IP.
As linhas se cruzam iff P e Q se encontram em
lados opostos de RS, e R e S se encontram em
lados opostos de PQ
(Or(P,Q,R)*Or(P,Q,S)<0) &&
(Or(R,S,P)*Or(R,S,Q)<0)
Geometrias
Afim
Euclidiana
Frame de Coordenadas
Coordenadas Homogneas
Transformaes: translao, rotao, shear,
escala, reflexo