INF 1366 – Computação Gráfica Interativa
Transformações
Alberto B. Raposo
[email protected]
http://www.tecgraf.puc-rio.br/~abraposo/INF1366
Alberto Raposo – PUC-Rio
Sistemas de Coordenadas
• Objetos em Computação Gráfica possuem descrições
numéricas (modelos) que caracterizam suas formas e
dimensões.
• Esses números se referem a um sistema de coordenadas,
normalmente o sistema Cartesiano de coordenadas: x, y e
z.
• Em alguns casos, precisamos de mais de um sistema de
coordenadas:
– Um sistema local para descrever partes individuais de uma
máquina, por exemplo, que pode ser montada especificando-se a
relação de cada sistema local das várias peças.
John Dingliana, 2004
Alberto Raposo – PUC-Rio
Transformações
• Em alguns casos, objetos exibem simetrias, de modo
que apenas parte deles precisa ser descrita, pois o resto
pode ser construído por reflexão, rotação e/ou
translação do pedaço original.
• Um projetista pode querer visualizar um objeto sob
vários pontos de vista, rotacionando-o ou movendo
uma câmera virtual.
• Em animação, um ou mais objetos podem precisar se
mover em relação ao outro, de modo que seus sistemas
de coordenadas locais devam ser transladados e
rotacionados ao longo da animação.
John Dingliana, 2004
Alberto Raposo – PUC-Rio
Exemplo 1
• Partes do objeto
definidas em sistemas
de coordenadas locais:
etc...
• Objeto “montado” por
meio de transformação
das partes
constituintes:
Alberto Raposo – PUC-Rio
John Dingliana, 2004
Exemplo 2
5 etapas de uma animação de um cubo girando
• A cada quadro da animação, o objeto é transformado (rotação,
nesse caso).
• O objeto também poderia ser transformado pela mudança de
tamanho (escalamento), sua forma (deformação), ou sua
localização (translação).
• Outros efeitos de animação são obtidos sem alterar o objeto em
si, mas a forma como ele é visualizado (transformação window
to viewport) a cada quadro (por exemplo, um zoom).
John Dingliana, 2004
Alberto Raposo – PUC-Rio
Transformações
• Há 2 formas de se enxergar uma transformação
– Uma Transformação de Objeto altera as coordenadas de
cada ponto de acordo com alguma regra, mantendo o
sistema de coordenadas inalterado.
– Uma Transformação de Coordenadas produz um sistema
de coordenadas diferente, e então representa todos os
pontos originais nesse novo sistema.
• Cada maneira tem suas vantagem, e são intimamente
relacionadas.
John Dingliana, 2004
Alberto Raposo – PUC-Rio
TRANSFORMAÇÃO DE OBJETO
.4, 2
1,1
John Dingliana, 2004
TRANSFORMAÇÃO DE COORDENADAS
(1,1)
(1,1)
Alberto Raposo – PUC-Rio
Classes de Transformações
•
•
•
•
•
Euclidianas / Corpos Rígidos
de Similaridade
Lineares
Afins
Projetivas
Alberto Raposo – PUC-Rio
Transformações Euclidianas
• Preservam distâncias
• Preservam ângulos
Identidade
Translação
Corpos Rígidos / Euclidianas
Translação
Identidade
Rotação
Rotação
Alberto Raposo – PUC-Rio
MIT EECS 6.837,
Durand and Cutler
Transformações de Similaridade
• Preservam ângulos
Similaridades
Escalamento
Isotrópico
Euclidianas
Identidade
Translação
Escalamento
Isotrópico
Rotação
Alberto Raposo – PUC-Rio
MIT EECS 6.837,
Durand and Cutler
Transformações Lineares
Escalamento
Reflexão
Shear
Similaridades
Linear
Euclidianas
Escalamento
Identidade
Translação
Rotação
Alberto Raposo – PUC-Rio
Escalaento
Isotrópico
Reflexão
Shear
MIT EECS 6.837,
Durand and Cutler
Transformações Lineares
• L(p + q) = L(p) + L(q)
• L(ap) = a L(p)
MIT EECS 6.837,
Durand and Cutler
Alberto Raposo – PUC-Rio
Transformações Afins
• Preservam linhas
paralelas
Afins
Similaridades
Linear
Euclidianas
Escalamento
Identidade
Translação
Rotação
Alberto Raposo – PUC-Rio
Escalaento
Isotrópico
Reflexão
Shear
Transformações
Projetivas
• preservam linhas
Projetivas
Afins
Similaridades
Linear
Euclidianas
Escalamento
Identidade
Translação
Rotação
Alberto Raposo – PUC-Rio
Escalaento
Isotrópico
Perspectiva
Reflexão
Shear
Perpectiva
Perspectiva é um dos fatores
que dá “aparência 3D” às cenas
Alberto Raposo – PUC-Rio
Transformações 2D
Coordenadas
de modelagem
y
Escalamento
Translação
D. Brogan,
Univ. of Virginia
x
Escalamento
Rotação
Translação
Alberto Raposo – PUC-Rio
Coordenadas do mundo
Transformações 2D
Coordenadas
de modelagem
y
x
Localização
inicial em
(0, 0) com
eixos x e y
alinhados
Alberto Raposo – PUC-Rio
D. Brogan,
Univ. of Virginia
Transformações 2D
Coordenadas
de modelagem
y
x
Scale .3, .3
Rotate -90
Translate 5, 3
Alberto Raposo – PUC-Rio
D. Brogan,
Univ. of Virginia
Transformações 2D
Coordenadas
de modelagem
y
x
Scale .3, .3
Rotate -90
Translate 5, 3
Alberto Raposo – PUC-Rio
D. Brogan,
Univ. of Virginia
Transformações 2D
Coordenadas
de modelagem
y
x
Scale .3, .3
Rotate -90
Translate 5, 3
Alberto Raposo – PUC-Rio
D. Brogan,
Univ. of Virginia
VRML: Nó Transform
Alberto Raposo – PUC-Rio
Exemplo em VRML
The Annotated VRML Reference
Alberto Raposo – PUC-Rio
Exemplo em VRML
Alberto Raposo – PUC-Rio
X3D – Nó Transform
Alberto Raposo – PUC-Rio
Exemplo
em X3D
Alberto Raposo – PUC-Rio
A ordem das transformações faz
diferença!
Alberto Raposo – PUC-Rio
Escalamento
• Escalar uma coordenada significa multiplicar cada
um de seus componentes por um valor escalar
• Escalamento isotrópico significa que esse valor
escalar é o mesmo para todos os componentes
2
Alberto Raposo – PUC-Rio
D. Brogan,
Univ. of Virginia
Escalamento
• Escalamento não-isotrópico: valores escalares
diferentes por componente:
X  2,
Y  0.5
• Como representar o escalamento na forma de
matrizes?
Alberto Raposo – PUC-Rio
D. Brogan,
Univ. of Virginia
Escalamento
• Operação de escalamento:
• Na forma matricial:
D. Brogan,
Univ. of Virginia
 x' ax
 y'  by
   
 x' a 0  x 
 y'  0 b  y 
  
 
Matriz de escalamento
Alberto Raposo – PUC-Rio
Rotação 2D
QX  Rcos(   )
Qy  Rsin(   )
John Dingliana, 2004
PX  R cos( )
Py  R sin ( )
Q
[1]
[2]
[3]
[4]
cos()  cos () cos () sin() sin()
PY
sin()  sin() cos () cos () sin()

P

R
PX
[1]
Qx  Rcos ( ) cos ( )  Rsin ( ) sin ( )
Substituindo de [3] e [4]…
Qx  Pxcos ( )  Py sin ( )
Similarmente, a partir de [2]…
Alberto Raposo – PUC-Rio
Qy  Pycos ( )  Px sin ( )
Rotação 2D
(x’, y’)
(x, y)

Alberto Raposo – PUC-Rio
x’ = x cos() - y sin()
y’ = x sin() + y cos()
D. Brogan,
Univ. of Virginia
Rotação 2D
• Na forma matricial:
 x' cos   sin   x 
 y'   sin  cos    y 
  
 
• Embora sin() e cos() sejam funções nãolineares de ,
– x’ é combinação linear de x e y
– y’ é combinação linear de x e y
Alberto Raposo – PUC-Rio
D. Brogan,
Univ. of Virginia
Translação 2D
y
tx
t 
t
 y
y
x




t x   x t x 
 x'    x   
 y '   y   t    y t 
     y 
y
x
M. Gattass, PUC-Rio
Alberto Raposo – PUC-Rio
Transformações 2D Básicas
• Translação:
– x’ = x + tx
– y’ = y + ty
• Escalamento:
– x’ = x * sx
– y’ = y * sy
• Rotação:
– x’ = x*cosQ - y*sinQ
– y’ = x*sinQ + y*cosQ
Alberto Raposo – PUC-Rio
Podem ser combinadas
com álgebra simples
D. Brogan,
Univ. of Virginia
Transformações 2D Básicas
• Translação:
– x’ = x + tx
– y’ = y + ty
• Escalamento:
– x’ = x * sx
– y’ = y * sy
• Rotação:
– x’ = x*cosQ - y*sinQ
– y’ = x*sinQ + y*cosQ
Alberto Raposo – PUC-Rio
D. Brogan,
Univ. of Virginia
Transformações 2D Básicas
• Translação:
– x’ = x + tx
– y’ = y + ty
• Escalamento:
– x’ = x * sx
– y’ = y * sy
(x,y)
(x’,y’)
• Rotação:
– x’ = x*cosQ - y*sinQ
– y’ = x*sinQ + y*cosQ
Alberto Raposo – PUC-Rio
x’ = x*sx
y’ = y*sy
D. Brogan,
Univ. of Virginia
Transformações 2D Básicas
• Translação:
– x’ = x + tx
– y’ = y + ty
• Escalamento:
– x’ = x * sx
– y’ = y * sy
• Rotação:
(x’,y’)
– x’ = x*cosQ - y*sinQ
– y’ = x*sinQ + y*cosQ x’ = (x*sx) *cosQ - (y*sy) * sinQ
y’ = (x*sx) * sinQ + (y*sy) * cosQ
Alberto Raposo – PUC-Rio
D. Brogan,
Univ. of Virginia
Transformações 2D Básicas
• Translação:
– x’ = x + tx
– y’ = y + ty
• Escalamento:
– x’ = x * sx
– y’ = y * sy
(x’,y’)
• Rotação:
– x’ = x*cosQ - y*sinQ
– y’ = x*sinQ + y*cosQ
Alberto Raposo – PUC-Rio
x’ = ((x*sx)*cosQ - (y*sy)*sinQ) + tx
y’ = ((x*sx)*sinQ + (y*sy)*cosQ) + ty
D. Brogan,
Univ. of Virginia
Representação Matricial
• Representar transformação 2D por uma
matriz
a b 
 c d 
• Multiplicar matriz por vetor-coluna
 aplicar transformação a um ponto
 x '  a
 y '  c
b  x
d   y 
x'  ax  by
y '  cx  dy
D. Brogan,
Univ. of Virginia
Alberto Raposo – PUC-Rio
Representação Matricial
• Transformações são combinadas por
multiplicação de matrizes
 x'  a b   e
 y '  c d   g
f  i
h  k
j x
l   y 
Matrizes são uma forma conveniente e eficiente
de representar uma seqüência de transformações
D. Brogan,
Univ. of Virginia
Alberto Raposo – PUC-Rio
Produto de Matrizes
 a11
a
21
C  AB  
 


 a n1
a12

a 22



an2

a1q  b11
b
a2q 
  21
  

a nq 

bq1
b12

b22



bq 2

b1m 
b2 m 

 

bqm 

q
cij   aik bkj
k 1
neutro:
Alberto Raposo – PUC-Rio
1
0
I


0
0
1


0
0
0



1
M. Gattass, PUC-Rio
Matrizes 2x2
• Que transformações planares podem ser
representadas com uma matriz 2x2?
Identidade 2D?
x'  x
y'  y
 x '   1 0   x 
 y ' 0 1  y 
Escalemento 2D em torno de (0,0)?
x'  s x * x
y'  s y * y
Alberto Raposo – PUC-Rio
 x '  s x
 y '   0
  
0  x

s y   y 
D. Brogan,
Univ. of Virginia
Matrizes 2x2
• Que transformações planares podem ser
representadas com uma matriz 2x2?
Rotação 2D em torno de (0,0)?
x'  cosQ * x  sin Q * y
y'  sin Q * x  cosQ * y
 x' cosQ  sin Q  x 
 y'   sin Q cosQ   y 
  
 
D. Brogan,
Univ. of Virginia
Alberto Raposo – PUC-Rio
Matrizes 2x2
• Que transformações planares podem ser
representadas com uma matriz 2x2?
Espelhamento 2D em torno de Y?
x'   x
y'  y
 x '     1 0  x 
 y '  0 1  y 
Espelhamento 2D em torno de (0,0)?
x'   x
y'   y
 x'   1 0   x 
 y '  0  1  y 
D. Brogan,
Univ. of Virginia
Alberto Raposo – PUC-Rio
Matrizes 2x2
• Que transformações planares podem ser
representadas com uma matriz 2x2?
Translação 2D?
x'  x  t x
y'  y  t y
NÃO!
D. Brogan,
Univ. of Virginia
Alberto Raposo – PUC-Rio
Coordenadas Homogêneas
• Como representar uma translação como
matriz 3x3?
x'  x  t x
y'  y  t y
Alberto Raposo – PUC-Rio
Coordenadas Homogêneas
•Coordenadas homogêneas
– representam
coordenadas em 2
dimensões com vetor 3
 x
homogêneas
 x  coord.

 y 
 y 
 1 
• Coordenadas Homogêneas parecem pouco
intuitivas, mas elas simplificam muito as
operações gráficas
D. Brogan,
Univ. of Virginia
Alberto Raposo – PUC-Rio
Coordenadas Homogêneas
• Como representar uma translação como
matriz 3x3?
x'  x  t x
y'  y  t y
Resp: Usando a terceira
coluna da matriz
Alberto Raposo – PUC-Rio
D. Brogan,
Univ. of Virginia
1 0 t x 
Translação 0 1 t y 


0 0 1 
Translação
•Coordenadas Homogêneas
•Exemplo
 x' 1 0 t x   x   x  t x 
 y'  0 1 t y   y    y  t y 
 1  0 0 1   1   1 
  
   

tx = 2
ty = 1
Alberto Raposo – PUC-Rio
D. Brogan,
Univ. of Virginia
Coordenadas Homogêneas
• Coloca uma 3a coordenada para cada ponto 3D
– (x, y, w) representa um ponto em (x/w, y/w)
– (x, y, 0) representa um ponto no infinito
– (0, 0, 0) não é permitido
y
Sistema conveniente para
representar muitas
transformações úteis em
CG
2
(2,1,1) or (4,2,2) or (6,3,3)
1
1
2
x
D. Brogan,
Univ. of Virginia
Alberto Raposo – PUC-Rio
Transformações 2D Básicas
• Representação em matrizes 3x3
 x '  s x
 y '   0
  
 1   0
 x ' 1 0 t x   x 
 y '  0 1 t   y 
y  
  
 1  0 0 1   1 
Translação
 x' cos Q
 y '   sin Q
  
 1   0
 sin Q
cosQ
0
Rotação
Alberto Raposo – PUC-Rio
0  x 
0  y 
1   1 
0
sy
0
Escalamento
0  x 
0  y 
1  1 
 x '  1
 y '   sh
   y
 1   0
shx
1
0
0  x 
0  y 
1  1 
Cisalhamento (Shear)
Cisalhamento (Shear)
x'  x  shx * y
M. Gattass, PUC-Rio
y
y
y'  shy * x  y

x
 x'   x  y tan  1 tan
 
 y'   
y
1
  0
  
 0
0
1
1  

Alberto Raposo – PUC-Rio
x
0  x 
0 y 
11 
Concatenação de Transformações
y
y
x
y
x
T1
y
T2
x
y
x
R1
y
R2
E
x
x
Alberto Raposo – PUC-Rio
P’= T2 R2 E R1 T1 P
M. Gattass, PUC-Rio
Composição de Matrizes
• Transformações podem ser combinadas pela
multiplicação de matrizes
 x'   1 0 tx  cosQ  sin Q 0  sx 0 0   x 
 y '    0 1 ty   sin Q cosQ 0  0 sy 0   y 
  


  
 w'  0 0 1   0
0
1  0 0 1   w
p’ =
T(tx,ty)
Alberto Raposo – PUC-Rio
R(Q)
S(sx,sy)
p
D. Brogan,
Univ. of Virginia
Composição de Matrizes
• Atenção: ordem das transformações faz
diferença
– Multiplicação de matrizes não é comutativa
p’ = T * R * S * p
“Global”
Alberto Raposo – PUC-Rio
“Local”
Ordem das Transformações
y
y
R
 x
p
 y

 
y
 x
p1  
 y

 
T
x
p2
 x2

y
 2




x
(a)
x
T
y
y
 x1 
p1  
y 

 1
x
R
 x2 
p2  
y 

 2
x
(b)
M. Gattass, PUC-Rio
Alberto Raposo – PUC-Rio
Ordem das Transformações
• Ex: rotacionar segmento em 45 graus em
torno da extremidade a
Resultado esperado
a
a
D. Brogan,
Univ. of Virginia
Alberto Raposo – PUC-Rio
Ordem das Transformações
• Erro: aplicar a rotação de 45o, R(45), afeta as duas
extremidades
– Pode-se tentar fazer a rotação e depois retornar o ponto
a à sua posição original, mas quanto ele precisaria ser
transladado?
a
Alberto Raposo – PUC-Rio
a
?
Como trazer o ponto a de Errado!
volta à posição original??
R(45)
a
Correto
T(-3) R(45) T(3)
D. Brogan, Univ. of Virginia
Ordem das Transformações
•
a
Correto: isolar ponto a dos efeitos
da rotação
1.
Transladar a linha para colocar a na origem: T (-3)
2.
Rotacionar linha em 45o: R(45)
3.
Transladar a de volta: T(3)
Alberto Raposo – PUC-Rio
a
a
a
D. Brogan, Univ. of Virginia
Composição de Matrizes
T(3)
R(45)
T(-3)
1 0 3 cos(45)  sin(45) 0 1 0  3  a x   a' x 
0 1 0  sin(45) cos(45) 0 0 1 0  a y   a' y 
0 0 1  0
0
1 0 0 1   1   1 
A multiplicação começa da última para a primeira transformação
Alberto Raposo – PUC-Rio
Composição de Matrizes
•Depois de ordenar as matrizes corretamente:
– Multiplicá-las
– Guardar resultado em uma só matriz
– Usar essa matriz para realizar a transformação
composta em cada um dos pontos que definem o
objeto transformado (vértices, por exemplo)
 Todos os vértices podem ser transformados
com uma simples multiplicação de vetor por
matriz.
Alberto Raposo – PUC-Rio
Exercício 2D
• Considere o triângulo com os seguintes
vértices em coordenadas
homogêneas
– Rotacione o triângulo
de 90o (sentido antihorário) em relação ao
ponto P = (6,5)
y
C
P
A
Alberto Raposo – PUC-Rio
B
x
Etapas da Solução
1. Definir matriz para transladar o triângulo
de modo que o centro de rotação se mova
para a origem do sistema de coordenadas
2. Definir matriz para rotacionar o triângulo
3. Definir matriz para transladar o triângulo
de volta
4. Gerar matriz combinada da transformação
5. Transformar os vértices do triângulo
Alberto Raposo – PUC-Rio
Etapas da Solução
1. Definir matriz para transladar o triângulo
de modo que o centro de rotação se mova
para a origem do sistema de coordenadas
–
–
Centro de rotação: P = (6,5)
Translação de -6 unidades em x e -5 unidades
em y
Alberto Raposo – PUC-Rio
Etapas da Solução
2. Definir matriz para rotacionar o triângulo
•
O ângulo de rotação é medido no sentido antihorário: R(+90o)
•
cos(90o) = 0 e sin(90o) = 1
Alberto Raposo – PUC-Rio
Etapas da Solução
3. Definir matriz para transladar o triângulo
de volta
•
Translação de 6 unidades em x e 5 unidades
em y
Alberto Raposo – PUC-Rio
Etapas da Solução
4. Gerar matriz combinada da transformação
=
Alberto Raposo – PUC-Rio
Etapas da Solução
5. Transformar os vértices do triângulo
y
C
B’
C’
P
A
Alberto Raposo – PUC-Rio
B = A’
x
Transformações em 3D
• Mesma idéia que em 2D:
– Coordenadas homogêneas: (x,y,z,w)
– Matrizes de trasnformação 4x4
 x'   a
 y'  e
 z'    i
 w' m

Alberto Raposo – PUC-Rio
b
f
j
n
c
g
k
o
d  x 
h  y 
l  z 
p   w
Transformações 3D Básicas
 x '  1
 y ' 0
 z '   0
 w  0
0
1
0
0
0
0
1
0
0  x 
0  y 
0  z 
1  w
Identidade
 x ' 1
 y ' 0
 
 z '  0
  
 w  0
0
1
0
0
 x '  s x
 y '  0
 
 z'   0
  
w   0
0
sy
0
0
0
0
sz
0
0  x 
0  y 
0  z 
 
1  w 
Escalamento
0 t x  x 
0 t y   y 
1 tz  z 
 
0 1  w 
Translação
Alberto Raposo – PUC-Rio
D. Brogan, Univ. of Virginia
Transformações 3D Básicas
 x'  1
 y '  0
 z'   0
 w   0
0
1
0
0
0
0
1
0
0  x 
0  y 
0  z 
1  w
Espelhamento em torno do
plano YZ
 x '  1 0
 y ' 0  1
 z '   0 0
 w  0 0
0
0
1
0
0  x 
0  y 
0  z 
1  w
Espelhamento em torno do
plano XZ
 x '  1
 y ' 0
 z '   0
 w  0
0 0
1 0
0 1
0 0
0  x 
0  y 
0  z 
1  w
Espelhamento em torno do
plano XY
Alberto Raposo – PUC-Rio
Transformações 3D Básicas
Rotação em torno de Z:
 x' cosQ  sin Q
 y '  sin Q cosQ
 z'   0
0
 w   0
0
Rotação em torno de Y:
 x '  cosQ
 y '  0
 
 z '   sin Q
  
w   0
Rotação em torno de X:
0
0
 x '  1
 y ' 0 cosQ  sin Q
 z '   0 sin Q cosQ
 w  0
0
0
Alberto Raposo – PUC-Rio
0
0
1
0
0  x 
0  y 
0  z 
1  w
0 sin Q 0  x 
1
0
0  y 
0 cosQ 0  z 
 
0
0
1  w 
0  x 
0  y 
0  z 
1  w
Rotações Reversas
• Como desfazer uma rotação R()?
– Aplicar o inverso da rotação: R(-)
•Construindo R(-) :
– cos(-) = cos()
– sin (-) = - sin ()
• Assim:
R(-) = RT()
Alberto Raposo – PUC-Rio
 cosQ
 0
 sin Q
 0
0 sin Q 0
cosQ
1
0
0   0
 sin Q
0 cosQ 0
 0
0
0
1
T
0  sin Q
1
0
0 cosQ
0
0
0
0
0
1
Exercício 3D
•
Encontre as respectivas matrizes de
transformação para os seguintes casos
a) Translação que leva o ponto p1 = (a1, b1, c1) para
o ponto p2 = (a2, b2, c2)
b) Escalamento que leva o ponto p1 = (a1, b1, c1)
para o ponto p2 = (a2, b2, c2)
c) Rotação em torno do eixo z que leva o ponto
p1 = (a1, b1, c1) para o ponto p2 = (a2, b2, c2)
•
Qual o ângulo dessa rotação?
Alberto Raposo – PUC-Rio
Solução
a) Translação que leva o ponto p1 = (a1, b1, c1) para
o ponto p2 = (a2, b2, c2)

Matriz de translação 
Alberto Raposo – PUC-Rio
Solução
b) Escalamento que leva o ponto p1 = (a1, b1, c1)
para o ponto p2 = (a2, b2, c2)

Matriz de escalamento 
Alberto Raposo – PUC-Rio
Solução
c) Rotação em torno do eixo z que leva o ponto
p1 = (a1, b1, c1) para o ponto p2 = (a2, b2, c2)
Para rotação em torno de z:

(2) – (1):
Alberto Raposo – PUC-Rio

Solução
c) Rotação em torno do eixo z que leva o ponto
p1 = (a1, b1, c1) para o ponto p2 = (a2, b2, c2)
Substituindo em (1) ou (2):
Matriz de rotação 
Alberto Raposo – PUC-Rio
Solução
c) Rotação em torno do eixo z que leva o ponto
p1 = (a1, b1, c1) para o ponto p2 = (a2, b2, c2)
•
Qual o ângulo dessa rotação?

Alberto Raposo – PUC-Rio

Ângulos de Euler
Fundamentos da Comp. Gráfica
Jonas Gomes, Luiz Velho
Alberto Raposo – PUC-Rio
Ângulos de Euler
z
z
z
z
y
x
x
y
y
x
c y cz

s s c  c s
x z
 x y z
c x s y c z  s x s z

0

y
x
c y sz
s x s y s z  cx cz
cx s y s z  s x cz
0
 sy
sx c y
cx c y
0
0
0

0

1
Notação: cx = cos(x); sx = sin(x) e assim por diante
Alberto Raposo – PUC-Rio
M. Gattass, PUC-Rio
 z  90o
 x  90o
Alberto Raposo – PUC-Rio
 x  90o
 z  90o
Demo: Ângulos de Euler
http://prt.fernuni-hagen.de/lehre/KURSE/PRT001/course_main/node10.html
Alberto Raposo – PUC-Rio
Bibliografia Adicional
•
•
•
•
•
Peter Shirley, Fundamentals of Computer Graphics, A K Peters,
Ltd., Natick, MA, USA, 2002.
Foley, J. D., Van Dam, A., Feiner, S. K., e Huhes, J. F., Phlips, L. R.,
Introduction to Computer Graphics, Addison-Wesley, 1995.
Foley, J. D., Van Dam, A., Feiner, S. K., e Huhes, J. F., Computer
Graphics: Principles and Practices, (Systems Programming), 2nd
edition in C, Addison-Wesley, 1995.
Brutzman, D. e Daly, L., Extensible 3D Graphics for Web
Authors, Morgan Kaufmann, 2007.
The Annotated VRML 97 Reference:
http://accad.osu.edu/~pgerstma/class/vnv/resources/info/Annotated
VrmlRef/Book.html
Alberto Raposo – PUC-Rio
Download

05_Transformações - PUC-Rio