Você está na página 1de 34

Introduo Computao Grfica

Geometria
Claudio Esperana
Paulo Roma Cavalcanti
Geometria Afim
Usa como elementos bsicos
pontos, vetores e escalares
Ponto: Denota posio no
plano
Vetor: Denota deslocamento,
isto , inclui a noo de
direo e magnitude
Ambos so normalmente
expressos por pares de
coordenadas (em 2D) mas
no so a mesma coisa

x
y
P
v
) , (
) , (
v v
P P
y x v
y x P
=
=

Operaes com Pontos e Vetores (2D)


Soma de vetores
t = v + u
Multiplicao de vetor por
escalar
u = 2 v
Subtrao de pontos
v = Q P
Soma de ponto com vetor
Q = P + v

x
y
v
u
x
y
v
x
y
P
v
v
Q
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
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

Transformaes
Transformao uma funo que mapeia pontos de
um espao Euclidiano em outros (ou possivelmente
os mesmos) pontos do mesmo espao.
Se uma transformao linear, ento
Se um conjunto de pontos est contido em uma reta,
depois de transformados eles tambm estaro
contidos sobre uma reta.
Se um ponto P guarda uma relao de distncia com
dois outros pontos Q e R, ento essa relao de
distncia mantida pela transformao.
Transformao mapeia origem na origem?
Sim: Transformao Linear
No: Transformao Linear Afim: Translaes so
permitidas
Transformaes Lineares em 2D
Uma transformao linear


Uma transformao linear afim


+ =
+ =
dy cx y
by ax x
'
'

+ + =
+ + =
f dy cx y
e by ax x
'
'
Forma Matricial
Mais conveniente para uso em um
computador. Sejam



Ento uma transformao linear afim pode
ser escrita T (P ) = P onde

(

=
(

=
(

=
(

=
f
e
D
d c
b a
A
y
x
P
y
x
P
'
'
'
D P A P + = '
Transformando Vetores
Um vetor no est atrelado a um ponto no espao
Uma transformao linear afim aplicada a um vetor
no inclui translao
Prova: Seja V um vetor e V sua imagem sob a
transformao linear afim, ento:
' ' ' P Q V P Q V = =
V A
P Q A
D P A D Q A
P Q V
=
=
+ + =
=
) (
) ( ) (
' ' '
Coordenadas Homogneas
A transformao de vetores operacionalmente
diferente da de pontos
Coordenadas homogneas permitem unificar o
tratamento
Problema levado para uma dimenso superior:
Coordenada extra w= 0 para vetores e =1 p/ pontos
Termos independentes formam uma coluna extra na
matriz de transformao
(
(
(

(
(
(

=
(
(
(

1 1 0 0 1
'
'
y
x
f d c
e b a
y
x
(
(
(

(
(
(

=
(
(
(

0 1 0 0 0
'
'
y
x
f d c
e b a
y
x
Coordenadas Homogneas - Interpretao
x
y
w
Plano 1 w=
Plano 0 w=
Coordenadas Homogneas: Propriedades
Operaes sobre pontos e vetores so legais se e somente
se o resultado em coordenadas homogneas possui em sua
ltima coordenada o valor 0 (vetor) ou 1 (ponto).

Legal : (Consider the last coordinate only)
escalar vetor vetor: o[, 0] = [, 0]
vetor + vetor vetor: [, 0] + [, 0] = [, 0]
ponto + vetor ponto: [, 1] + [, 0] = [, 1]
ponto ponto vetor: [, 1] [, 1] = [, 0]
combinao afim (op + |q): o[, 1] + |[, 1] = [, o+|],
(vlida s se o+| = 1)
Ilegal :
ponto + ponto [, 1] + [, 1] = [, 2]
vetor ponto [, 0] - [, 1] = [, -1]
escalar ponto o[, 1] = [, o]
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)
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

=
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

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
.
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
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 ...

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
Modelando Transformaes
Uma t.l.a. em 2D pode ser definida se dispusermos
da imagem de 3 pontos do domnio
P P
Q
Q
R
R
x
y

+ + =
+ + =
+ + =
+ + =
+ + =
+ + =
f y d x c y
e y b x a x
f y d x c y
e y b x a x
f y d x c y
e y b x a x
R R R
R R R
Q Q Q
Q Q Q
P P P
P P P
. .
. .
. .
. .
. .
. .
'
'
'
'
'
'
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
. . + =
Mudana de Sistema de Coordenadas
Se estabelecemos um outro sistema (ex.: Q/T/U),
como computar as novas coordenadas dadas as
antigas?
X
Y
O
U
T
Q
P
Y y X x
P P
+
U u T t
P P
+
Mudana de Sistema de Coordenadas
Como computar as coordenadas de um ponto P =
(x
P
, y
P
) em O/X/Y dadas as coordenadas de P em
Q/T/U, isto , (t
P
, u
P
) ?
O Y y y u y t X x x u x t
O Y y X x Y y X x u Y y X x t
Q U u T t P
Q U P T P Q U P T P
Q Q U U P T T P
P P
+ + + + + + =
+ + + + + + =
+ + =
). . . ( ). . . (
) . . ( ) . . .( ) . . .(
. .
Q U P T P P
x x u x t x + + = . .
Q U P T P P
y y u y t y + + = . .
Logo,



Mudana de Sistema de Coordenadas
Matricialmente:


Usando coordenadas homogneas:



Para resolver o problema inverso:



(

+
(

=
(

Q
Q
P
P
U T
U T
P
P
y
x
u
t
y y
x x
y
x
(
(

(
(
(

=
(
(

1
1 0 0
1
P
P
Q U T
Q U T
P
P
u
t
y y y
x x x
y
x
(
(

(
(
(

=
(
(


1
1 0 0
1
1
P
P
Q U T
Q U T
P
P
y
x
y y y
x x x
u
t
Transformaes em 3D
Vetores e pontos em 3D




Transformao linear afim

(
(
(
(

=
0
z
y
x
V
V
V
V

(
(
(
(

=
1
z
y
x
P
P
P
P
(
(
(
(

=
1 0 0 0
l i h g
k f e d
j c b a
T
Transformaes Rgidas
No modificam a forma (dimenses/ngulos) do
objeto
So compostas de uma rotao e uma translao

(
(
(
(

=
1 0 0 0
l i h g
k f e d
j c b a
T
Submatriz de
Rotao
Vetor de
Translao
Translao
(

=
(
(
(
(

=
1 0
1 0 0 0
1 0 0
0 1 0
0 0 1
3
t I
t
t
t
T
z
y
x
t P
t P
t P
t P
P
P
P
t
t
t
P T P
z z
y y
x x
z
y
x
z
y
x
+ =
(
(
(
(

+
+
+
=
(
(
(
(

(
(
(
(

= =
1 1 1 0 0 0
1 0 0
0 1 0
0 0 1
'
Observe que translaes
so comutativas:
P + t + v = P + v + t
x
y
z
Rotao em torno do eixo Z
Podemos ver que o vetor (1,0,0)
T
mapeado em (cos
o, sen o, 0)
T
e que o vetor (0,1,0)
T
mapeado em
(- sen o, cos o, 0)
T
o
x
y
cos o
cos o
sen o
- sen
o
x
y
x
y
z
Rotao em torno do eixo Z
Outra maneira de ver:
o
o
sin
cos
r P
r P
y
x
=
=
u
o
P
P
x
y
r
r
Sabemos que
) sin(
) cos(
u o
u o
+ =
'
+ =
'
r P
r P
y
x
Ento
u o u o
u o u o
cos sin sin cos
sin sin cos cos
r r P
r r P
y
x
+ =
'
=
'
u u
u u
cos sin
sin cos
y x y
y x x
P P P
P P P
+ =
'
=
'
Ou, finalmente,
Rotao em torno dos eixos coordenados
Similarmente, em torno dos eixos X e Y
(
(
(
(


1 0 0 0
0 1 0 0
0 0 cos sin
0 0 sin cos
u u
u u
(
(
(
(

1 0 0 0
0 cos sin 0
0 sin cos 0
0 0 0 1
u u
u u
(
(
(
(

1 0 0 0
0 cos 0 sin
0 0 1 0
0 sin 0 cos
u u
u u
Rotao em torno de Z dada pela matriz



Rotaes em geral
Qualquer rotao pode ser definida por um
eixo de rotao dado pelo vetor unitrio u =
(x, y, z)
T
e um ngulo de rotao o
Seja S a matriz



Ento a submatriz de Rotao M dada por
(
(
(

=
0
0
0
S
x y
x z
y z
S sin ( ) uu I )( (cos uu M
T T
) + + = o o
Inclinao (shear)
uma transformao de deformao onde um eixo entortado
em relao aos demais
x
y
z
x
y
z
z
Se o vetor unitrio do eixo z
levado em [Sh
x
Sh
y
1 0]
T
, ento a
matriz de transformao dada
por

(
(
(
(

=
1 0 0 0
0 1 0 0
0 1 0
0 0 1
y
x
inclinao
Sh
Sh
T
Escala
Especificada por trs fatores (S
x
, S
y
, S
z
) que multiplicam os vetores
unitrios x, y, z
Escala no uma transformao rgida,
Escala uniforme (S
x
= S
y
= S
z
) entretanto, uma operao ortogonal
ou homottica, isto , preserva os ngulos
Para obter reflexo em torno do plano z=0, usar fatores de escala (1,
1, -1)

(
(
(
(

=
1 0 0 0
0 0 0
0 0 0
0 0 0
z
y
x
escala
S
S
S
T
x
y
z
x
y
z
Composio de transformaes em 3D
Em nossa notao, usamos pr-multiplicao:
P = T x P
Para compor 2 transformaes temos:
Se P = T
1
x P e P = T
2
x P , ento, P = T
2
x T
1
x P
1
T
2
T
1 2
T T

Você também pode gostar