Alberto Raposo – PUC-Rio
INF 1366 – Computação Gráfica Interativa
Transformações
Alberto B. Raposo
abraposo@tecgraf.puc-rio.br
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
etc...
Exemplo 1
• Partes do objeto
definidas em sistemas
de coordenadas locais:
• Objeto “montado” por
meio de transformação
das partes
constituintes:
Alberto Raposo – PUC-Rio
5 etapas de uma animação de um cubo girando
Exemplo 2
• 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
1,1
.4, 2
TRANSFORMAÇÃO DE OBJETO
(1,1)
(1,1)
TRANSFORMAÇÃO DE COORDENADAS
John Dingliana, 2004Alberto 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
Translação
Rotação
Corpos Rígidos / Euclidianas
Identidade
Identidade
Translação
Rotação
MIT EECS 6.837,Durand and Cutler Alberto Raposo – PUC-Rio
Transformações de Similaridade
• Preservam ângulos
Translação
Rotação
Euclidianas
Similaridades
Escalamento
Isotrópico
Identidade
MIT EECS 6.837, Durand and CutlerEscalamento
Isotrópico
Alberto Raposo – PUC-Rio
Transformações Lineares
Translação
Rotação
Euclidianas
Linear
Similaridades
Escalaento
Isotrópico
Identidade
Escalamento
Shear
Reflexão
Escalamento
Reflexão
Shear
MIT EECS 6.837, Durand and Cutler
Alberto Raposo – PUC-Rio
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
Translação
Rotação
Euclidianas
Linear
Similaridades
Escalaento
Isotrópico
Identidade
Escalamento
Shear
Reflexão
Alberto Raposo – PUC-Rio
Transformações
Projetivas
• preservam linhas
Projetivas
Perspectiva
Afins
Translação
Rotação
Euclidianas
Linear
Similaridades
Escalaento
Isotrópico
Identidade
Escalamento
Shear
Reflexão
Alberto Raposo – PUC-Rio
Perpectiva
Perspectiva é um dos fatores
que dá “aparência 3D” às cenas
Alberto Raposo – PUC-Rio
Transformações 2D
Escalamento
Rotação
Translação
Escalamento
Translação
x
y
Coordenadas do mundo
Coordenadas
de modelagem
D. Brogan, Univ. of VirginiaAlberto Raposo – PUC-Rio
Transformações 2D
x
y
Coordenadas
de modelagem
Localização
inicial em
(0, 0) com
eixos x e y
alinhados
D. Brogan, Univ. of VirginiaAlberto Raposo – PUC-Rio
Transformações 2D
x
y
Coordenadas
de modelagem
Scale .3, .3
Rotate -90
Translate 5, 3
D. Brogan, Univ. of VirginiaAlberto Raposo – PUC-Rio
Transformações 2D
x
y
Coordenadas
de modelagem
Scale .3, .3
Rotate -90
Translate 5, 3
D. Brogan, Univ. of VirginiaAlberto Raposo – PUC-Rio
Transformações 2D
x
y
Coordenadas
de modelagem
Scale .3, .3
Rotate -90
Translate 5, 3
D. Brogan, Univ. of VirginiaAlberto Raposo – PUC-Rio
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
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
D. Brogan,
Univ. of Virginia Alberto Raposo – PUC-Rio
• Escalamento não-isotrópico
: valores escalares
diferentes por componente:
• Como representar o escalamento na forma de
matrizes?
Escalamento
X × 2,
Y × 0.5
D. Brogan, Univ. of VirginiaAlberto Raposo – PUC-Rio
Escalamento
• Operação de escalamento:
• Na forma matricial:
=
by
ax
y
x
'
'
=
y
x
b
a
y
x
0
0
'
'
Matriz de escalamento
D. Brogan, Univ. of VirginiaAlberto Raposo – PUC-Rio
Rotação 2D
cos (
θ φ
+
) cos
=
( )
θ
cos
( )
φ
−
sin
( )
θ
sin
( )
φ
sin (
θ φ
+
) sin
=
( )
θ
cos
( )
φ
+
cos
( )
θ
sin
( )
φ
P
Q
R
P
XP
Yφ
θ
[1]
[2]
[3]
[4]
[1]
Q
x
=
R
cos
(
θ
)
cos
(
φ
)
−
R
sin
(
θ
)
sin
(
φ
)
Substituindo de [3] e [4]…
)
(
)
(
θ
sin
θ
cos
P
y
x
P
x
Q
=
−
Similarmente, a partir de [2]…)
(
)
(
θ
sin
θ
cos
P
x
y
P
y
Q
=
+
)
Rcos(
Q
X=
θ
+
φ
)
Rsin(
Q
y=
θ +
φ
)
(
cos
R
P
X=
φ
)
(
sin
R
P
y=
φ
John Dingliana, 2004Alberto Raposo – PUC-Rio
Rotação 2D
θ
(x, y)
(x’, y’)
x’ = x cos(θ) - y sin(θ)
y’ = x sin(θ) + y cos(θ)
D. Brogan, Univ. of Virginia
Alberto Raposo – PUC-Rio
Rotação 2D
• Na forma matricial:
• Embora sin(θ) e cos(θ) sejam funções
não-lineares de θ,
– x’ é combinação linear de x e y
– y’ é combinação linear de x e y
( )
( )
( )
( )
−
=
y
x
y
x
θ
θ
θ
θ
cos
sin
sin
cos
'
'
D. Brogan, Univ. of VirginiaAlberto Raposo – PUC-Rio
Translação 2D
+
+
≡
+
=
y x y xt
y
t
x
t
t
y
x
y
x
'
'
y
x
x
y
=
y xt
t
t
M. Gattass, PUC-RioAlberto Raposo – PUC-Rio
Transformações 2D Básicas
• Translação:
– x’ = x + t
x– y’ = y + t
y• Escalamento:
– x’ = x * s
x– y’ = y * s
y• Rotação:
– x’ = x*cosΘ - y*sinΘ
– y’ = x*sinΘ + y*cosΘ
Podem ser combinadas
com álgebra simples
D. Brogan, Univ. of Virginia
Alberto Raposo – PUC-Rio
Transformações 2D Básicas
• Translação:
– x’ = x + t
x– y’ = y + t
y• Escalamento:
– x’ = x * s
x– y’ = y * s
y• Rotação:
– x’ = x*cosΘ - y*sinΘ
– y’ = x*sinΘ + y*cosΘ
D. Brogan, Univ. of Virginia
Alberto Raposo – PUC-Rio
• Translação:
– x’ = x + t
x– y’ = y + t
y• Escalamento:
– x’ = x
* s
x– y’ = y
* s
y• Rotação:
– x’ = x*cosΘ - y*sinΘ
– y’ = x*sinΘ + y*cosΘ
x’ = x
*s
xy’ = y
*s
y(x,y)
(x’,y’)
Transformações 2D Básicas
D. Brogan, Univ. of VirginiaAlberto Raposo – PUC-Rio
x’ = (x*s
x)
*cosΘ -
(y*s
y)
* sinΘ
y’ = (x*s
x)
* sinΘ +
(y*s
y)
* cosΘ
(x’,y’)
• Translação:
– x’ = x + t
x– y’ = y + t
y• Escalamento:
– x’ = x * s
x– y’ = y * s
y• Rotação:
– x’ = x
*cosΘ
- y*sinΘ
– y’ = x
*sinΘ
+ y
*cosΘ
D. Brogan, Univ. of Virginia
Transformações 2D Básicas
Alberto Raposo – PUC-Rio
• Translação:
– x’ = x
+ t
x– y’ = y
+ t
y• Escalamento:
– x’ = x * s
x– y’ = y * s
y• Rotação:
– x’ = x*cosΘ - y*sinΘ
– y’ = x*sinΘ + y*cosΘ
x’ = ((x*s
x)*cosΘ - (y*s
y)*sinΘ)
+ t
xy’ = ((x*s
x)*sinΘ + (y*s
y)*cosΘ)
+ t
y(x’,y’)
D. Brogan, Univ. of Virginia
Transformações 2D Básicas
Alberto Raposo – PUC-Rio
Representação Matricial
• Representar transformação 2D por uma
matriz
• Multiplicar matriz por vetor-coluna
⇔ aplicar transformação a um ponto
=
y
x
d
c
b
a
y
x
'
'
d
c
b
a
dy
cx
y
by
ax
x
+
=
+
=
'
'
D. Brogan, Univ. of VirginiaAlberto Raposo – PUC-Rio
Representação Matricial
• Transformações são combinadas por
multiplicação de matrizes
=
y
x
l
k
j
i
h
g
f
e
d
c
b
a
y
x
'
'
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
∑
==
q k kj ik ija
b
c
1
=
=
qm q q m m nq n n q qb
b
b
b
b
b
b
b
b
a
a
a
a
a
a
a
a
a
L
M
O
M
M
L
L
L
M
O
M
M
L
L
2 1 2 22 21 1 12 11 2 1 2 22 21 1 12 11AB
C
= 1 0 0 0 1 0 0 0 1 O M L Ineutro:
M. Gattass, PUC-RioAlberto Raposo – PUC-Rio
Matrizes 2x2
• Que transformações planares podem ser
representadas com uma matriz 2x2?
Identidade 2D?
y
y
x
x
=
=
'
'
=
y
x
y
x
1
0
0
1
'
'
Escalemento 2D em torno de (0,0)?
y
s
y
x
s
x
y
x*
'
*
'
=
=
=
y
x
s
s
y
x
y
x
0
0
'
'
D. Brogan, Univ. of VirginiaAlberto Raposo – PUC-Rio
Matrizes 2x2
• Que transformações planares podem ser
representadas com uma matriz 2x2?
D. Brogan, Univ. of Virginia
Rotação 2D em torno de (0,0)?
y
x
y
x
y
x
*
cos
*
sin
'
cos
*
sin
*
'
Θ
+
Θ
=
Θ
−
Θ
=
Θ
Θ
Θ
−
Θ
=
y
x
y
x
cos
sin
sin
cos
'
'
Alberto Raposo – PUC-Rio
Matrizes 2x2
• Que transformações planares podem ser
representadas com uma matriz 2x2?
D. Brogan, Univ. of Virginia
Espelhamento 2D em torno de Y?
y
y
x
x
=
−
=
'
'
−
=
y
x
y
x
1
0
1
0
'
'
Espelhamento 2D em torno de (0,0)?
y
y
x
x
−
=
−
=
'
'
−
−
=
y
x
y
x
1
0
1
0
'
'
Alberto Raposo – PUC-Rio
Matrizes 2x2
• Que transformações planares podem ser
representadas com uma matriz 2x2?
D. Brogan, Univ. of Virginia
Translação 2D?
y xt
y
y
t
x
x
+
=
+
=
'
'
NÃO!
Alberto Raposo – PUC-Rio
Coordenadas Homogêneas
• Como representar uma translação como
matriz 3x3?
y xt
y
y
t
x
x
+
=
+
=
'
'
Alberto Raposo – PUC-Rio
Coordenadas Homogêneas
•Coordenadas homogêneas
– representam
coordenadas em 2
dimensões com vetor 3
→
1
homogêneas
coord.
y
x
y
x
• 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?
y xt
y
y
t
x
x
+
=
+
=
'
'
Resp: Usando a terceira
coluna da matriz
=
1
0
0
1
0
0
1
y
x
t
t
Translação
D. Brogan, Univ. of VirginiaAlberto Raposo – PUC-Rio
Translação
•Exemplo
+
+
=
=
1
1
1
0
0
1
0
0
1
1
'
'
y x y xt
y
t
x
y
x
t
t
y
x
t
x= 2
t
y= 1
•Coordenadas Homogêneas
D. Brogan, Univ. of VirginiaAlberto Raposo – PUC-Rio
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
Sistema conveniente para
representar muitas
transformações úteis em
CG
1
2
1
2
(2,1,1) or (4,2,2) or (6,3,3)
x
y
D. Brogan, Univ. of VirginiaAlberto Raposo – PUC-Rio
Transformações 2D Básicas
• Representação em matrizes 3x3
Θ
Θ
Θ
−
Θ
=
1
1
0
0
0
cos
sin
0
sin
cos
1
'
'
y
x
y
x
=
1
1
0
0
1
0
0
1
1
'
'
y
x
t
t
y
x
y x
=
1
1
0
0
0
1
0
1
1
'
'
y
x
sh
sh
y
x
y xTranslação
Rotação
Cisalhamento (Shear)
=
1
1
0
0
0
0
0
0
1
'
'
y
x
s
s
y
x
y xEscalamento
Alberto Raposo – PUC-Rio
Cisalhamento (Shear)
y
x
sh
y
y
sh
x
x
y x+
=
+
=
*
'
*
'
x
y
x
y
γ
=
+
=
1
1
0
0
1
0
0
tan
0
1
1
tan
1
'
'
y
x
y
y
x
y
x
γ
γ
M. Gattass, PUC-RioAlberto Raposo – PUC-Rio
Concatenação de Transformações
x y x y x y x y x y x yT
1R
1E
R
2T
2P’= T
2R
2E R
1T
1P
P’= T
2R
2E R
1T
1P
M. Gattass, PUC-RioAlberto Raposo – PUC-Rio
Composição de Matrizes
• Transformações podem ser combinadas pela
multiplicação de matrizes
Θ
Θ
Θ
−
Θ
=
w
y
x
sy
sx
ty
tx
w
y
x
1
0
0
0
0
0
0
1
0
0
0
cos
sin
0
sin
cos
1
0
0
1
0
0
1
'
'
'
p’ = T(t
x,t
y) R(Θ) S(s
x,s
y)
p
D. Brogan, Univ. of VirginiaAlberto Raposo – PUC-Rio
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”
“Local”
Alberto Raposo – PUC-Rio
Ordem das Transformações
x
y
=
y
x
p
R
x
y
=
2 2 2y
x
p
T
x
y
=
1 1 1y
x
p
R
x
y
=
y
x
1p
x
y
=
2 2 2y
x
p
T
(a)
(b)
M. Gattass, PUC-RioAlberto Raposo – PUC-Rio
Ordem das Transformações
• Ex: rotacionar segmento em 45 graus em
torno da extremidade a
a
a
Resultado esperado
D. Brogan, Univ. of Virginia
Alberto Raposo – PUC-Rio
Ordem das Transformações
• Erro: aplicar a rotação de 45
o
, 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?
Errado!
R(45)
a
a
Correto
T(-3) R(45) T(3)
a
D. Brogan, Univ. of Virginia
Como trazer o ponto a de volta à posição original??
?
Alberto Raposo – PUC-Rio
Ordem das Transformações
•
Correto: isolar ponto a dos efeitos
da rotação
1.
Transladar a linha para colocar a na origem: T (-3)
2.
Rotacionar linha em 45
o: R(45)
3.
Transladar a de volta: T(3)
a
a
a
a
D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio
Composição de Matrizes
=
−
−
1
'
'
1
1
0
0
1
0
0
0
3
1
1
0
0
45
)
cos(
45
)
0
sin(
45
)
sin(
45
)
0
cos(
1
0
0
1
0
0
0
3
1
y x y xa
a
a
a
T(3) R(45) T(-3)
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 90
o
(sentido
anti-horário) em relação ao
ponto P = (6,5)
y
x
C
B
A
P
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
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
anti-horário: R(+90
o
)
•
cos(90
o) = 0 e sin(90
o) = 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
x
C
B
A
P
B’
= A’
C’
Alberto Raposo – PUC-Rio
Transformações em 3D
• Mesma idéia que em 2D:
– Coordenadas homogêneas: (x,y,z,w)
– Matrizes de trasnformação 4x4
=
w
z
y
x
p
o
n
m
l
k
j
i
h
g
f
e
d
c
b
a
w
z
y
x
'
'
'
'
Alberto Raposo – PUC-Rio
Transformações 3D Básicas
=
w
z
y
x
w
z
y
x
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
'
'
'
=
w
z
y
x
t
t
t
w
z
y
x
z y x1
0
0
0
1
0
0
0
1
0
0
0
1
'
'
'
=
w
z
y
x
s
s
s
w
z
y
x
z y x1
0
0
0
0
0
0
0
0
0
0
0
0
'
'
'
Identidade
Escalamento
Translação
D. Brogan, Univ. of Virginia
Alberto Raposo – PUC-Rio
Transformações 3D Básicas
−
=
w
z
y
x
w
z
y
x
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
'
'
'
Espelhamento em torno do
plano YZ
−
=
w
z
y
x
w
z
y
x
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
'
'
'
Espelhamento em torno do
plano XZ
−
=
w
z
y
x
w
z
y
x
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
'
'
'
Espelhamento em torno do
plano XY
Alberto Raposo – PUC-Rio
Transformações 3D Básicas
Θ
Θ
Θ
−
Θ
=
w
z
y
x
w
z
y
x
1
0
0
0
0
1
0
0
cos
0
0
sin
sin
0
0
cos
'
'
'
Rotação em torno de Z:
Θ
Θ
−
Θ
Θ
=
w
z
y
x
w
z
y
x
1
0
0
0
0
cos
0
sin
0
0
1
0
0
sin
0
cos
'
'
'
Θ
Θ
Θ
−
Θ
=
w
z
y
x
w
z
y
x
1
0
0
0
sin
cos
0
0
cos
sin
0
0
0
0
0
1
'
'
'
Rotação em torno de Y:
Rotação em torno de X:
Alberto Raposo – PUC-Rio
Rotações Reversas
• Como desfazer uma rotação R(θ)?
– Aplicar o inverso da rotação: R(-θ)
•Construindo R(-θ) :
– cos(-θ) = cos(θ)
– sin (-θ) = - sin (θ)
• Assim:
R(-θ) = R
T
(θ)
Θ
Θ
Θ
−
Θ
=
Θ
Θ
−
Θ
Θ
1
0
0
0
0
cos
0
sin
0
1
0
0
0
sin
0
cos
1
0
0
0
0
cos
0
sin
0
1
0
0
0
sin
0
cos
TAlberto Raposo – PUC-Rio
Exercício 3D
•
Encontre as respectivas matrizes de
transformação para os seguintes casos
a) Translação que leva o ponto p
1
= (a
1
, b
1
, c
1
) para
o ponto p
2
= (a
2
, b
2
, c
2
)
b) Escalamento que leva o ponto p
1
= (a
1
, b
1
, c
1
)
para o ponto p
2
= (a
2
, b
2
, c
2
)
c) Rotação em torno do eixo z que leva o ponto
p
1
= (a
1
, b
1
, c
1
) para o ponto p
2
= (a
2
, b
2
, c
2
)
•
Qual o ângulo dessa rotação?
Alberto Raposo – PUC-Rio
Solução
a) Translação que leva o ponto p
1
= (a
1
, b
1
, c
1
) para
o ponto p
2
= (a
2
, b
2
, c
2
)
⇒
Matriz de translação ⇒
Alberto Raposo – PUC-Rio
Solução
b) Escalamento que leva o ponto p
1
= (a
1
, b
1
, c
1
)
para o ponto p
2
= (a
2
, b
2
, c
2
)
⇒
Alberto Raposo – PUC-Rio
Solução
c) Rotação em torno do eixo z que leva o ponto
p
1
= (a
1
, b
1
, c
1
) para o ponto p
2
= (a
2
, b
2
, c
2
)
⇒
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
p
1
= (a
1
, b
1
, c
1
) para o ponto p
2
= (a
2
, b
2
, c
2
)
Matriz de rotação ⇒
Substituindo em (1) ou (2):
Alberto Raposo – PUC-Rio
Solução
c) Rotação em torno do eixo z que leva o ponto
p
1
= (a
1
, b
1
, c
1
) para o ponto p
2
= (a
2
, b
2
, c
2
)
•
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
−
+
+
−
−
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 yc
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
θ
θ
θ
θ
xx
y
z
θ
θ
θ
θ
yx
y
z
θ
θ
θ
θ
zx
y
z
M. Gattass, PUC-Rio Notação: cx= cos(θ
x); sx= sin(θ
x) e assim por dianteAlberto Raposo – PUC-Rio
o x
=
90
θ
o z=
−
90
θ
o x=
90
θ
o z=
−
90
θ
Alberto Raposo – PUC-Rio
Demo: Ângulos de Euler
http://prt.fernuni-hagen.de/lehre/KURSE/PRT001/course_main/node10.html
Alberto Raposo – PUC-Rio