Professional Documents
Culture Documents
Hierarquia. Hierarquia.
Transformaes geomtricas no espao
Transformaes geomtricas no espao
:
:
Introduo
Introduo
3
Instituto de Computao - UFF
As matrizes de
As matrizes de
translao
translao
e
e
escala
escala
so de
so de
fato uma simples extenso das matrizes de
fato uma simples extenso das matrizes de
transformao definidas no plano.
transformao definidas no plano.
Transformaes geomtricas espao
Transformaes geomtricas espao
:
:
Introduo
Introduo
4
Instituto de Computao - UFF
Transformaes geomtricas no espao
Transformaes geomtricas no espao
:
:
Translaes e escalas
Translaes e escalas
x
y
z
1
1
1
1
]
1
1
1
1
1
]
1
1
1
1
1
]
1
1 1 0 0 0
1 0 0
0 1 0
0 0 1
1
z
y
x
t
t
t
z
y
x
z
y
x
1
1
1
1
]
1
1
1
1
1
]
1
1
1
1
1
]
1
1 1 0 0 0
0 0 0
0 0 0
0 0 0
1
z
y
x
s
s
s
z
y
x
z
y
x
Translao Translao
Escala Escala
5
Instituto de Computao - UFF
Uma extenso natural definirmos a rotao de Uma extenso natural definirmos a rotao de
um objeto a partir da um objeto a partir da rotao em torno dos eixos rotao em torno dos eixos
cartesianos cartesianos. .
Transformaes geomtricas no espao
Transformaes geomtricas no espao
:
:
Rotaes
Rotaes
x x
y y
z z
x x
y y
z z
6
Instituto de Computao - UFF
As
As
colunas
colunas
de uma matriz de rotao em
de uma matriz de rotao em
torno de um certo eixo cartesiano so
torno de um certo eixo cartesiano so
dados pela
dados pela
transformao dos vetores da
transformao dos vetores da
base cannica
base cannica
.
.
Transformaes geomtricas no espao
Transformaes geomtricas no espao
:
:
Rotaes
Rotaes
7
Instituto de Computao - UFF
Transformaes geomtricas no espao
Transformaes geomtricas no espao
:
:
Rotaes no eixo z
Rotaes no eixo z
1
1
1
]
1
1
1
1
]
1
1
1
1
]
1
z
y
x
z
y
x
z z
z z
1 0 0
0 cos sin
0 sin cos
'
'
'
x
y
z
'
i
'
j
'
z
1
1
1
1
]
1
1
1
1
1
]
1
1
1
1
1
]
1
1 1 0 0 0
0 1 0 0
0 0 cos sin
0 0 sin cos
1
'
'
'
z
y
x
z
y
x
z z
z z
1
1
1
]
1
1
0
0
k
1
1
1
]
1
0
sin
cos
z
z
i
1
1
1
]
1
0
cos
sin
z
z
j
x
y
k k
z
8
Instituto de Computao - UFF
Transformaes geomtricas no espao
Transformaes geomtricas no espao
:
:
Rotaes no eixo x
Rotaes no eixo x
x
y
z
x
'
i
'
j
'
k
1
1
1
]
1
x
x
j
sin
cos
0
1
1
1
]
1
0
0
1
i
1
1
1
]
1
x
x
k
cos
sin
0
1
1
1
]
1
1
1
1
]
1
1
1
1
]
1
z
y
x
z
y
x
x x
x x
cos sin 0
sin cos 0
0 0 1
1
1
1
1
]
1
1
1
1
1
]
1
1
1
1
1
]
1
1 1 0 0 0
0 cos sin 0
0 sin cos 0
0 0 0 1
1
z
y
x
z
y
x
x x
x x
x
j
y
z
i i
x
9
Instituto de Computao - UFF
Transformaes geomtricas no espao
Transformaes geomtricas no espao
:
:
Rotaes no eixo y
Rotaes no eixo y
y
z
'
i
'
j
'
y
x
'
k
'
i
k
z
x
'
j j
y
1
1
1
]
1
y
i
y
sin
0
cos
1
1
1
]
1
0
1
0
j
1
1
1
]
1
y
k
y
cos
1
sin
1
1
1
]
1
1
1
1
]
1
1
1
1
]
1
z
y
x
z
y
x
y y
y y
cos 0 sin
0 1 0
sin 0 cos
1
1
1
1
]
1
1
1
1
1
]
1
1
1
1
1
]
1
1 1 0 0 0
0 cos 0 sin
0 0 1 0
0 sin 0 cos
1
z
y
x
z
y
x
y y
y y
x
10
Instituto de Computao - UFF
Transformaes geomtricas no espao
Transformaes geomtricas no espao
:
:
Rotaes nos eixos cartesianos
Rotaes nos eixos cartesianos
x
y
z
x
z
1
1
1
1
]
1
1
1
1
1
]
1
1
1
1
1
]
1
1 1 0 0 0
0 cos 0 sin
0 0 1 0
0 sin 0 cos
1
z
y
x
z
y
x
y y
y y
1
1
1
1
]
1
1
1
1
1
]
1
1
1
1
1
]
1
1 1 0 0 0
0 cos sin 0
0 sin cos 0
0 0 0 1
1
z
y
x
z
y
x
x x
x x
1
1
1
1
]
1
1
1
1
1
]
1
1
1
1
1
]
1
1 1 0 0 0
0 1 0 0
0 0 cos sin
0 0 sin cos
1
'
'
'
z
y
x
z
y
x
z z
z z
11
Instituto de Computao - UFF
Se a matriz Se a matriz M M e o vetor e o vetor s s tem dimenses 2x2 e 1x2, tem dimenses 2x2 e 1x2,
respectivamente, ento a transformao ocorre no respectivamente, ento a transformao ocorre no
plano homogneo plano homogneo. .
Se as dimenses forem 3x3 e 3x1, respectivamente, Se as dimenses forem 3x3 e 3x1, respectivamente,
ento a transformao ocorre no ento a transformao ocorre no espao homogneo espao homogneo. .
Transformaes geomtricas no espao
Transformaes geomtricas no espao
:
:
matrizes de transformao
matrizes de transformao
1
]
1
1 s
T M
12
Instituto de Computao - UFF
1 0
0 M
1
]
1
1 0
T I
1
]
1
1 0
T M
(a) (a) (b) (b) (c) (c)
13
Instituto de Computao - UFF
1
]
1
1
]
1
1 0 1 0
0
1 0
T M M T I
1
]
1
1
]
1
1
]
1
1 0 1 0 1 0
0 MT M T I M
14
Instituto de Computao - UFF
Como podemos ver, a Como podemos ver, a ordem influi no resultado ordem influi no resultado. .
Na segunda ordem, a translao no pode ser lida Na segunda ordem, a translao no pode ser lida
diretamente da ltima coluna ltima matriz,. diretamente da ltima coluna ltima matriz,.
Como a ltima linha o vetor Como a ltima linha o vetor [0..0 1] [0..0 1] ento ento estas estas
matrizes mantm os pontos no plano matrizes mantm os pontos no plano w = 1 w = 1. .
Nas Nas transformaes projetivas transformaes projetivas, que sero vistas mais , que sero vistas mais
tarde, a ltima linha assume outros valores e os tarde, a ltima linha assume outros valores e os
pontos podem ser deslocados do plano pontos podem ser deslocados do plano w=1 w=1. .
Transformaes geomtricas no espao
Transformaes geomtricas no espao
:
:
matrizes de transformao
matrizes de transformao
15
Instituto de Computao - UFF
J que as J que as rotaes no comutam rotaes no comutam devemos adotar devemos adotar
uma ordem especfica uma ordem especfica. .
Esta forma de representar orientaes denominada Esta forma de representar orientaes denominada
ngulos de Euler ngulos de Euler. .
Roll Roll giro em torno do eixo longitudinal giro em torno do eixo longitudinal
Yaw Yaw giro em torno do eixo vertical. giro em torno do eixo vertical.
Transformaes geomtricas no espao
Transformaes geomtricas no espao
:
:
ngulos de Euler
ngulos de Euler
17
Instituto de Computao - UFF
Transformaes geomtricas no espao
Transformaes geomtricas no espao
:
:
ngulos de Euler
ngulos de Euler
1
1
1
1
]
1
+
+
1 0 0 0
0
0
0
) , , (
y x z x z y x z x z y x
y x z x z y x z x z y x
y z y z y
z y x
c c c s s s c s s c s c
c s c c s s s s c c s s
s s c c c
R
x x
y
z
y
x
y
z
z
x
y
z
s s
x x
= sin( = sin(
x x
), s ), s
y y
= sin( = sin(
y y
), s ), s
z z
= sin( = sin(
z z
) )
c c
x x
= cos( = cos(
x x
), c ), c
y y
= cos( = cos(
y y
), c ), c
z z
= cos( = cos(
z z
) )
18
Instituto de Computao - UFF
Problemas:
Problemas:
Gimbal lock
Gimbal lock
: perda de graus de
: perda de graus de
liberdade em certas configuraes.
liberdade em certas configuraes.
+
+
1 0 0 0
0 0
0 0
0 1 0 0
) , 90 , (
z x z x z x z x
z x z x z x z x
z
o
x
c s s c s s c c
c c s s s c c s
R
1
1
1
1
]
1
1 0 0 0
0 0 ) sin( ) cos(
0 0 ) cos( ) sin(
0 1 0 0
z x z x
z x z x
1
1
1
1
]
1
+
+
1 0 0 0
0
0
0
) , , (
y x z x z y x z x z y x
y x z x z y x z x z y x
y z y z y
z y x
c c c s s s c s s c s c
c s c c s s s s c c s s
s s c c c
R
Apesar de especificarmos 2 parmetros s Apesar de especificarmos 2 parmetros s
temos 1 grau de liberdade temos 1 grau de liberdade
22
Instituto de Computao - UFF
Euler provou em 1775 que dadas duas posies Euler provou em 1775 que dadas duas posies
rotacionadas de um objeto, sempre possvel levar uma rotacionadas de um objeto, sempre possvel levar uma
posio a outra atravs de uma posio a outra atravs de uma rotao de um ngulo rotao de um ngulo
em torno de um eixo em torno de um eixo. .
Esta rotao tem a mesmo comportamento que a Esta rotao tem a mesmo comportamento que a
interpolao de duas posies atravs de um segmento interpolao de duas posies atravs de um segmento
de reta que os une. de reta que os une.
Sai da primeira posio indo para a segunda sem Sai da primeira posio indo para a segunda sem
oscilaes. oscilaes.
Transformaes geomtricas no espao
Transformaes geomtricas no espao
:
:
outras formas de se expecificar orientaes
outras formas de se expecificar orientaes
24
Instituto de Computao - UFF
e
p
p
||
p
v
p
x
y
z
p e v
) ( ) (
||
+ p p p p R R
) ( ) (
||
+ p p p R R
v p p p ) ( ) (cos
||
sen + +
p
p
' p
v
) )( ( ) ) ( )( (cos ) ( p e e p e p e p e p + + sen
p
p
||
p
v
p
x
y
z
p e v
p
p
' p
v
sen
) )( ( ) ) ( )( (cos ) ( p e e p e p e p e p + + sen
Transformaes geomtricas no espao
Transformaes geomtricas no espao
:
:
rotao em torno de um eixo
rotao em torno de um eixo
26
Instituto de Computao - UFF
,
_
+
+
,
_
,
_
,
_
,
_
sin ) cos 1 (
sin ) cos 1 (
) cos 1 ( cos 0
sin ) cos 1 (
0
0
1
cos
2
22
21
11
y z x
z y x
x
y
z
z
y
x
x
e e e
e e e
e
e
e
e
e
e
e
m
m
m
,
_
,
_
,
_
,
_
,
_
sin ) cos 1 (
) cos 1 ( cos
sin ) cos 1 (
0 sin ) cos 1 (
0
1
0
cos
2
32
22
12
x z y
y
z x y
x
z
z
y
x
y
e e e
e
e e e
e
e
e
e
e
e
m
m
m
,
_
+
+
,
_
,
_
,
_
,
_
2
33
23
13
) cos 1 ( cos
sin ) cos 1 (
sin ) cos 1 (
0
sin ) cos 1 (
1
0
0
cos
z
x y z
y x z
x
y
z
y
x
z
e
e e e
e e e
e
e
e
e
e
e
m
m
m
,
_
1
1
1
1
]
1
,
_
1 1 0 0 0
0
0
0
'
'
'
33 32 31
23 22 21
13 12 11
z
y
x
m m m
m m m
m m m
w
z
y
x
Transformaes geomtricas no espao
Transformaes geomtricas no espao
:
:
rotao em torno de um eixo
rotao em torno de um eixo
27
Instituto de Computao - UFF
1
1
1
1
1
]
1
+
+ +
+ +
1 0 0 0
0 ) cos 1 ( cos sin ) cos 1 ( sin ) cos 1 (
0 sin ) cos 1 ( ) cos 1 ( cos sin ) cos 1 (
0 sin ) cos 1 ( sin ) cos 1 ( ) cos 1 ( cos
2
2
2
z x z y y z x
x y z y z y x
y x z z x y x
e e e e e e e
e e e e e e e
e e e e e e e
M
,
_
1
1
1
1
]
1
,
_
1 1 0 0 0
0
0
0
'
'
'
33 32 31
23 22 21
13 12 11
z
y
x
m m m
m m m
m m m
w
z
y
x
x
y
z
,
_
z
y
x
e
e
e
,
_
z
y
x
e
e
e
x
y
z
,
_
z
y
x
e
e
e
p
0
p
0
x
y
z
,
_
z
y
x
e
e
e
p
0
M
x
y
z
,
_
z
y
x
e
e
e
p
0
1
1
1
1
]
1
1 0 0 0
1 0 0
0 1 0
0 0 1
0
0
0
z
y
x
T
1
1
1
1
]
1
1 0 0 0
1 0 0
0 1 0
0 0 1
0
0
0
1
z
y
x
T
Transformaes geomtricas no espao
Transformaes geomtricas no espao
:
:
rotao em torno de um eixo fora da origem
rotao em torno de um eixo fora da origem
29
Instituto de Computao - UFF
Para isso existe uma estrutura matemtica mais Para isso existe uma estrutura matemtica mais
adequada denominada adequada denominada quatrnios quatrnios. .
No sculo 18, W. R. Hamilton props os No sculo 18, W. R. Hamilton props os quatrnios quatrnios
como uma extenso como uma extenso em quatro dimenses para os em quatro dimenses para os
nmeros complexos. nmeros complexos.
Transformaes geomtricas no espao
Transformaes geomtricas no espao
:
:
quaternios
quaternios
30
Instituto de Computao - UFF
Quatrnios Quatrnios podem representar rotaes e orientaes podem representar rotaes e orientaes
no espao tridimensional. no espao tridimensional.
Existem diferentes notaes para Existem diferentes notaes para quatrnios quatrnios
Uma possvel forma represent-los conforme abaixo: Uma possvel forma represent-los conforme abaixo:
q q = (q = (q
v v
,q ,q
w w
) = iq ) = iq
x x
+jq +jq
y y
+kq +kq
z z
+q +q
w w
= q = q
v v
+q +q
w w
q q
v v
= iq = iq
x x
+jq +jq
y y
+kq +kq
z z
=(q =(q
x x
,q ,q
y y
,q ,q
z z
) )
i i
2 2
= j = j
2 2
= k = k
2 2
= -1 and ij = -ji= k, jk = -kj = i, ki = -ik = -j = -1 and ij = -ji= k, jk = -kj = i, ki = -ik = -j
Transformaes geomtricas no espao
Transformaes geomtricas no espao
:
:
quaternios
quaternios
31
Instituto de Computao - UFF
Adio: q + r = (q
v
,q
w
)+(r
v
,r
w
)
Multiplicao: qr = (q
v
x r
v
+r
w
q
v
+q
w
r
v
, q
w
r
w
q
v
.r
v
), onde . indica produto
escalar e x produto vetorial); Obs.: qr rq
Conjugado: q* = (q
v
,q
w
)* = (-q
v
,q
w
)
,
_
+ +
+ +
+ +
1 0 0 0
0 ) ( 1 ) ( ) (
0 ) ( ) ( 1 ) (
0 ) ( ) ( ) ( 1
2 2
2 2
2 2
y x x w z y y w z x
x w z y
z
x z w y x
y w z x z w y x z y
q
q q s q q q q s q q q q s
q q q q s q q s q q q q s
q q q q s q q q q s q q s
M
,
_
+ +
+ +
+ +
1 0 0 0
0 ) ( 1 ) ( 2 ) ( 2
0 ) ( 2 ) ( 2 1 ) ( 2
0 ) ( 2 ) ( 2 ) ( 2 1
2 2
2 2
2 2
y x x w z y y w z x
x w z y
z
x z w y x
y w z x z w y x z y
q
q q s q q q q q q q q
q q q q q q q q q q
q q q q q q q q q q
M
39
Instituto de Computao - UFF
,
_
+ +
+ +
+ +
1 0 0 0
0 ) ( 1 ) ( 2 ) ( 2
0 ) ( 2 ) ( 2 1 ) ( 2
0 ) ( 2 ) ( 2 ) ( 2 1
2 2
2 2
2 2
y x x w z y y w z x
x w z y
z
x z w y x
y w z x z w y x z y
q
q q s q q q q q q q q
q q q q q q q q q q
q q q q q q q q q q
M
z w
q q
y w
q q
x w
q q
q q m m
q q m m
q q m m
4
4
4
01 10
20 02
12 21
40
Instituto de Computao - UFF
O trao de M
q
dado pela soma dos elementos da
diagonal:
) (
4
1 4 ) ( 2 4 ) (
2
2 2 2 2
2 2 2
2 2 2
q n
q
q q q q
q q q
q q q s M tr
w
w z y x
z y x
z y x
q
,
_
+ + +
+ +
+ +
w
q q
y
q
m m
q
4
20 02
w
q q
z
q
m m
q
4
01 10
) (
2
1
q
w
M tr q
41
Instituto de Computao - UFF
s(q,r,t)=slerp(q,r,t) =
Transformaes geomtricas no espao
Transformaes geomtricas no espao
:
:
interpolao de quaternios
interpolao de quaternios
r
t
q
t
sin
) sin(
sin
)) 1 ( sin(
42
Instituto de Computao - UFF
Translao Translao
Rotao Rotao de de angle angle graus em torno de um eixo (x,y,z). graus em torno de um eixo (x,y,z).
glRotate{fd}(TYPE angle,TYPE x, TYPE y, TYPE z); glRotate{fd}(TYPE angle,TYPE x, TYPE y, TYPE z);
Escala Escala
glScale{fd}(TYPE sx, TYPE sy, TYPE sz); glScale{fd}(TYPE sx, TYPE sy, TYPE sz);
Transformaes geomtricas no espao
Transformaes geomtricas no espao
:
:
Transformaes em
Transformaes em
OpenGL
OpenGL
43
Instituto de Computao - UFF
Para transformarmos um certo objeto poligonal basta Para transformarmos um certo objeto poligonal basta
aplicar a matriz de transformao em cada um dos aplicar a matriz de transformao em cada um dos
seus vrtices. seus vrtices.
Por outro lado, no caso geral, Por outro lado, no caso geral, as normais destes as normais destes
objetos no seguem a mesma transformao objetos no seguem a mesma transformao. .
Exemplo: Exemplo:
Transformaes geomtricas no espao
Transformaes geomtricas no espao
:
:
Transformaes em
Transformaes em
OpenGL
OpenGL
x x
y y
x x
y y
s s
x x
=0.5 =0.5
x x
y y
44
Instituto de Computao - UFF
1
1
z
y
x
M M d c b a p n
T
[ ]
1
1
1
1
]
1
1
z
y
x
d c b a p n
T
45
Instituto de Computao - UFF
1
1
1
1
]
1
z
y
x
M d c b a
n M
d
c
b
a
M
d
c
b
a
n
T T
1
1
1
1
]
1
1
1
1
1
]
1
46
Instituto de Computao - UFF
fundamental para a descrio de fundamental para a descrio de objetos compostos objetos compostos
de vrias partes de vrias partes, principalmente quando h , principalmente quando h vnculo vnculo
entre as mesmas. entre as mesmas.
,
_
y
x
p
R x
y
,
_
2
2
2
y
x
p
T
x
y
,
_
1
1
1
y
x
p
R
x
y
,
_
1
1
1
y
x
p
x
y
,
_
2
2
2
y
x
p
T
(a)
(b)
49
Instituto de Computao - UFF
A idia que os eixos locais inicialmente coincidem A idia que os eixos locais inicialmente coincidem
com o sistema de referncia global. com o sistema de referncia global.
A cada rotao e translao, A cada rotao e translao, um dado eixo local muda um dado eixo local muda
de posio e/ou orientao de posio e/ou orientao. .
Transformaes geomtricas no espao
Transformaes geomtricas no espao
:
:
Transformaes em
Transformaes em
OpenGL
OpenGL
51
Instituto de Computao - UFF
Transformaes geomtricas no espao
Transformaes geomtricas no espao
:
:
Transformaes em
Transformaes em
OpenGL
OpenGL
p
2
= R T p
p
1
= T p e p
2
= R p
1
x
T R
y
x
,
_
y
x
p
x
y y
,
_
1
1
1
y
x
p
,
_
2
2
2
y
x
p
x
yL
x
y
xL
R
x,x
L
y,y
L
xL
yL
T
L
x
y
p
2
= T
L
R p , T
L
=RTR
-1
p
2
= R T R
-1
R p
p
2
= R T p
ou
p
2
52
Instituto de Computao - UFF
Transformaes geomtricas no espao
Transformaes geomtricas no espao
:
:
Transformaes em
Transformaes em
OpenGL
OpenGL
53
Instituto de Computao - UFF
Transformaes geomtricas no espao
Transformaes geomtricas no espao
:
:
Transformaes em
Transformaes em
OpenGL
OpenGL
y y
x x
z z
54
Instituto de Computao - UFF
Transformaes geomtricas no espao
Transformaes geomtricas no espao
:
:
Transformaes em
Transformaes em
OpenGL
OpenGL
y y
x x
z z
x x
y y
z z
55
Instituto de Computao - UFF
Transformaes geomtricas no espao
Transformaes geomtricas no espao
:
:
Transformaes em
Transformaes em
OpenGL
OpenGL
y y
x x
z z
x x
y y
1 1
x x
z z
1 1
= z = z
y= y y= y
x x
1 1
z z
56
Instituto de Computao - UFF
Transformaes geomtricas no espao
Transformaes geomtricas no espao
:
:
Transformaes em
Transformaes em
OpenGL
OpenGL
x x
2 2
y y
z z
2 2
x x
z z
y y
2 2
x x
y y
1 1
d d
1 1
x x
z z
1 1
= z = z
y= y y= y
x x
1 1
z z
57
Instituto de Computao - UFF
Transformaes geomtricas no espao
Transformaes geomtricas no espao
:
:
Transformaes em
Transformaes em
OpenGL
OpenGL
x x
2 2
y y
z z
2 2
x x
z z
y y
2 2
x x
4 4
y y
4 4
z z
4 4
x x
y y
1 1
x x
3 3
y y
3 3
z z
3 3
=z =z
2 2
x x
5 5
z z
5 5= =
z z
4 4
y y
4 4
d d
1 1
d d
2 2
x x
z z
1 1
= z = z
y= y y= y
x x
1 1
y y
2 2
x x
2 2
x x
4 4
y y
5 5
z z
Desenha a base (em xyz);
Translada em y;
Roda em y;
Roda em z;
Desenha o ombro (em x
1
y
1
z
1
)
Translada em y
1
de d
1
/2;
Desenha o ante-brao (em
x
2
y
2
z
2
);
Translada em y
2
de d
1
/2;
Roda em z
2
Quando fornecemos uma nova matriz Quando fornecemos uma nova matriz M M, ela , ela
multiplicada pela esquerda pela matriz corrente multiplicada pela esquerda pela matriz corrente C C. Isto . Isto
C C
nova nova
= CM = CM. .
Geometricamente isto significa que Geometricamente isto significa que a transformao a transformao
descrita por descrita por M M ocorrer primeiro que a transformao ocorrer primeiro que a transformao
dada por dada por C C. .
Isto bastante conveniente para o esquema de Isto bastante conveniente para o esquema de
interpretao do processo de instanciao baseado interpretao do processo de instanciao baseado
em em eixos locais eixos locais. .
Transformaes geomtricas no espao
Transformaes geomtricas no espao
:
:
Transformaes em
Transformaes em
OpenGL
OpenGL
62
Instituto de Computao - UFF
Existem situaes em que o processo de instanciao Existem situaes em que o processo de instanciao
no descrito por uma seqncia de transformaes no descrito por uma seqncia de transformaes
com estrutura linear. com estrutura linear.
comum por exemplo, encontrarmos objetos que so comum por exemplo, encontrarmos objetos que so
descritos por descritos por seqncias de transformao seqncias de transformao
estruturadas em forma de rvore estruturadas em forma de rvore. .
Nestes casos definida uma Nestes casos definida uma hierarquia hierarquia sobre o sobre o
conjunto de transformaes e partes do objeto que conjunto de transformaes e partes do objeto que
especificam o modelo. especificam o modelo.
Transformaes geomtricas no espao
Transformaes geomtricas no espao
:
:
Transformaes em
Transformaes em
OpenGL
OpenGL
63
Instituto de Computao - UFF
Sistemas como o OpenGL implementam uma Sistemas como o OpenGL implementam uma
estrutura de pilha para matrizes de transformao estrutura de pilha para matrizes de transformao. .
Desta forma, possvel percorrer a rvore saltando e Desta forma, possvel percorrer a rvore saltando e
recuperando as matrizes dos ns pai atravs de recuperando as matrizes dos ns pai atravs de
instrues instrues pop pop e e push push. .
Com o mecanismo de pilha, podemos garantir que Com o mecanismo de pilha, podemos garantir que
uma funo uma funo retorna sem alterar o estado corrente das retorna sem alterar o estado corrente das
transformaes transformaes. .
Transformaes geomtricas no espao
Transformaes geomtricas no espao
:
:
Transformaes em
Transformaes em
OpenGL
OpenGL
66
Instituto de Computao - UFF
Transformaes geomtricas no espao
Transformaes geomtricas no espao
:
:
Transformaes em
Transformaes em
OpenGL
OpenGL
x
5
y
5
y
6
y
7
y
8
y
9
x
6
x
7
x
8
x
9
a
b
c
d
e e f
a
void desenhaDedos(float b,float c, float f, float f )
{
/* dedo esquerdo */
glPushMatrix(); /* Salva matriz corrente C
0
*/
glTranslatef((f+e)/2,(b+c)/2,0.); /* C=CT
esq
*/
glScalef(e,c,e); /* C=CS */
glutSolidCube(1.0);
glPopMatrix(); /* Recupera da pilha C=C
0
*/
/* dedo direito */
glPushMatrix(); /* Salva matriz corrente C
0
*/
glTranslatef((f+e)/2,(b+c)/2,0.); /* C=CT
dir
*/
glScalef(e,c,e); /* C=CS */
glutSolidCube(1.0);
glPopMatrix(); /* Recupera da pilha C=C
0
*/
}
67
Instituto de Computao - UFF
Transformaes geomtricas no espao
Transformaes geomtricas no espao
:
:
Transformaes em
Transformaes em
OpenGL - exemplo
OpenGL - exemplo