C
C
C
C
I
I
-
-
3
3
6
6
–
–
C
C
o
o
m
m
p
p
u
u
t
t
a
a
ç
ç
ã
ã
o
o
G
G
r
r
á
á
f
f
i
i
c
c
a
a
T
T
r
r
a
a
n
n
s
s
f
f
o
o
r
r
m
m
a
a
ç
ç
õ
õ
e
e
s
s
3
3
D
D
e
e
P
P
r
r
o
o
j
j
e
e
ç
ç
õ
õ
e
e
s
s
Instituto Tecnológico de Aeronáutica
Tópicos da aula
• Geometria Projetiva Tridimensional • Transformações em 3D
• Representação de Rotações
• Transformação de Corpo rígido em 3D • Projeção ortográfica
• Projeção perspectiva • Pontos de fuga
Livro para acompanhar essa aula
Mathematical Elements for Computer Graphics (2nd edition) D. F. Rogers, J. A. Adams
McGraw-Hill
Capítulos 2 e 3 pp 61-206
Fundamentos de Geometria Computacional Resende, R. J., Stolfi, J.
IX Escola de Computação, Recife, 1994 Capítulo 2 pp 25-76
Geometria Projetiva 3D
3 é o espaço projetivo orientado.
Pontos
Os pontos são representados por quádruplas de coordenadas homogêneas
[
]
Tw
z
y
x
das quais se exclui[
0
0
0
0
]
T e correspondem ao ponto[
]
Tw
z
w
y
w
x
/
/
/
em coordenadas cartesianas paraw
>
0
, à direção do vetor)
,
,
Plano
Planos são definidos por quádruplas de coeficientes homogêneos
X
,
Y
,
Z
,
W
e um ponto[
x
y
z
w
]
T pertence ao plano seXx
+
Yy
+
Zz
+
Ww
=
0
.Um plano divide os espaço em dois lados. De acordo com o sinal da expressão
Ww
Zz
Yy
Xx
+
+
+
um ponto[
x
y
z
w
]
T está do lado positivo ou do ladonegativo do plano.
O plano no infinito é definido como
Ω
=
[
0
0
0
1
]
T , que define o aquém do espaço como os pontos quew
>
0
e o além,w
<
0
.Orientação do tetraedro 3 3 3 3 2 2 2 2 1 1 1 1 0 0 0 0 3 2 1
,
,
)
sgn
,
(
w
z
y
x
w
z
y
x
w
z
y
x
w
z
y
x
p
p
p
p
o=
−
∆
Obtenção do plano por 3 pontos
p
0∨
p
1∨
p
2=
[
X
Y
Z
W
]
,
2 2 2 1 1 1 0 0 0 2 2 2 1 1 1 0 0 0 2 2 2 1 1 1 0 0 0 2 2 2 1 1 1 0 0 0
,
,
,
z
y
x
z
y
x
z
y
x
W
y
x
w
y
x
w
y
x
w
Z
z
x
w
z
x
w
z
x
w
Y
z
y
w
z
y
w
z
y
w
X
=
−
=
=
−
=
Transformações Geométricas em 3D
Transformação 4x4 de coordenadas homogêneas
(transformação projetiva em 3D)
=
h
hz
hy
hx
s
r
q
p
n
j
i
g
m
f
e
d
l
c
b
a
w
z
y
x
´
´
´
´
Partes da matriz de transformação:
j
i
g
f
e
d
c
b
a
Transformação linear em 3D.
n
m
l
Vetor de translação em 3D.[
p
q
r
]
perspectiva.Escala em 3D
1
0
0
0
0
0
0
0
0
0
0
0
0
j
e
a
=
=
=
jz
z
ey
y
ax
x
´
´
´
Exemplo: aplicar escala ao paralelepípedo
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
3
3
0
0
3
3
0
0
0
2
2
0
0
2
2
0
1
1
3
/
1
2
/
1
Escala global
2
/
1
1
1
1
equivale à
1
2
2
2
Translação3D
1
0
0
0
1
0
0
0
1
0
0
0
1
n
m
l
+
=
+
=
+
=
n
z
z
m
y
y
l
x
x
´
´
´
Reflexo 3D
−
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
Reflexo em relação ao plano xy.
Cisalhamento
1
0
0
0
0
1
0
0
0
1
0
0
0
1
f
c
=
+
=
+
=
z
z
fz
y
y
cz
x
x
´
´
´
Desloca x e y em função de z.Rotações em 3D
−
=
1
0
0
0
0
cos
sin
0
0
sin
cos
0
0
0
0
1
θ
θ
θ
θ
xR
Rotação em torno do eixo x no sentido anti-horário.
−
=
1
0
0
0
0
cos
0
sin
0
0
1
0
0
sin
0
cos
θ
θ
θ
θ
yR
−
=
1
0
0
0
0
1
0
0
0
0
cos
sin
0
0
sin
cos
θ
θ
θ
θ
zR
Rotação em torno do eixo z no sentido anti-horário.
O determinante é 1.
As linhas são vetores ortonormais (unitários e ortogonais).
Por isso
R
T= R
−1A composição de rotações é associativa, mas não é comutativa. A mudança da ordem das rotações pode dar resultados diferentes.
Exemplo: Rotação de 90 graus em x e em y.
Depois em ordem inversa.
−
1
0
1
1
0
1
−
1
0
1
1
1
0
=
1
1
1
1
−
1
0
1
1
1
0
−
1
0
1
1
0
1
−
−
=
1
1
1
1
Exercício: Composição de Transformações
Rotação em torno de um eixo arbitrário.
Eixo passa por
[
x
0y
0z
0]
T com cossenos de direção(
c
x,
c
y,
c
z)
.Rotação por um ângulo
δ
.1- Transladar de
(
−
x
0,
−
y
0,
−
z
0)
para eixo passar pela origem.2- Rotacionar em torno do eixo x até eixo no plano xz.
3- Rotacionar em torno do eixo y até eixo coincidir com eixo z. 4- Rotacionar
δ
em torno do eixo z5- Transformação 3 inversa 6- Transformação 2 inversa 7- Transformação 1 inversa
−
−
−
=
1
1
1
1
0 0 0 1z
y
x
T
d
c
d
c
c
c
d
y z z y=
=
+
=
α
α
,
sin
cos
2 2
−
=
=
0
0
0
0
0
0
0
1
2d
c
d
c
d
c
d
c
R
T
x z yx
c
d
=
=
β
β
,
sin
cos
−
=
=
1
0
0
0
0
0
0
0
1
0
0
0
3d
c
c
d
R
T
x x y
−
=
=
1
0
0
0
0
1
0
0
0
0
cos
sin
0
0
sin
cos
4δ
δ
δ
δ
zR
T
Composição: 4 3 2 1 1 3 1 2 1 1T
T
T
T
T
T
T
− − −Outros Exemplos de Composição de Transformações:
• Rotações e Translações
• Rotação por eixo paralelo a um eixo coordenado. • Reflexo sobre plano arbitrário no espaço
Transformações Afins em 3D
+
=
′
n
m
l
P
j
i
g
f
e
d
c
b
a
P
(coordenadas cartesianas)Ou ainda, em coordenadas homogêneas:
P
n
j
i
g
m
f
e
d
l
c
b
a
P
=
′
1
0
0
0
Transformações de Corpo Rígido em 3D
Rotações e translações em 3D e suas composições.
+
=
n
m
l
P
j
i
g
f
e
d
c
b
a
P
´
=
+
+
=
+
+
=
+
+
=
+
+
=
+
+
=
+
+
0
0
0
1
1
1
2 2 2 2 2 2 2 2 2cj
bi
ag
fj
ei
dg
cf
be
ad
j
i
g
f
e
d
c
b
a
e1
+
=
j
i
g
f
e
d
c
b
a
Restrições não-linearesRepresentação de Rotações em 3D
3 graus de liberdade
• Ângulos de Euler: rotação em x, rotação em y e rotação em z.
• Ângulos de Euler II: eixo pela origem e ângulo de rotação (regra mão direita). • Matriz 3x3 ortonormal positiva.
• Quatérnions unitários.
Problema dos ângulos de Euler é o chamado “Gimbal lock”: para uma dada configuração, um grau de liberdade é perdido.
Lembrando números complexos
iy
x
z
=
+
ondei
=
−
1
.Soma
z
1+
z
2=
(
x
1+
x
2)
+
i
(
y
1+
y
2)
translação.Escala
α
z
=
( ) ( )
α
x
+
i
α
y
escala uniforme.Produto
z
1⋅
z
2=
(
x
1+
iy
1)(
x
2+
iy
2)
=
x
1x
2−
y
1y
2+
i
(
x
2y
1+
x
1y
2)
Fórmula de Euler
e
iθ=
cos
θ
+
i
sin
θ
Produto por
e
iθ :z
⋅
e
iθ=
x
cos
θ
−
y
sin
θ
+
i
(
y
cos
θ
+
x
sin
θ
)
Número complexo unitário representa uma rotação em 2D.Quatérnions
Vetor de 4 componentesq
+
= q
q
o(soma de um componente escalar e um vetor 3D). Produto, associativo, mas não comutativo
×
+
+
=
⋅
−
=
=
q
p
p
q
r
q
p
q
p
pq
r
q
p
r
o o oProduto escalar de quartenhões
q
p
⋅
+
=
•
q
pq
p
o o Norma:q
q
⋅
+
=
•
=
q
q
q
2q
o o oQuartenhão unitário tem norma igual a 1.
Rotação de
θ
em torno de um vetor unitárioω
r
é representada porω
θ
θ
r
+
=
2
cos
2
sin
oq
Notar que oq
−
define a mesma rotação queo
q
, visto que inverte a orientação do eixoe o ângulo simultaneamente. Quartenhão conjugado:
q
−
= q
q
o *Inverte apenas o “cosseno”: rotação inversa para quartenhão unitário:
o o o
Fórmula da rotação o o
q
q
(
0
)
*)
0
(
+
x
′
=
+
x
A composição de rotações resulta da multiplicação de quartenhões
* * * *
)
)(
0
)(
(
)
)
0
(
(
)
0
(
)
0
(
o o o o o o o o o op
q
q
p
p
q
q
p
p
p
x
x
x
x
′′
=
+
′
=
+
=
+
+
A matriz de rotação correspondente é
+
−
−
+
+
−
+
−
−
+
−
+
+
+
−
−
−
+
=
2 3 2 2 2 1 2 0 2 3 1 0 3 1 2 0 3 2 1 0 2 3 2 2 2 1 2 0 1 2 3 0 3 1 2 0 2 1 3 0 2 3 2 2 2 1 2 0)
(
2
)
(
2
)
(
2
)
(
2
)
(
2
)
(
2
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
q
q
q
q
q
q
q
q
R
Para os ângulos de Euler
α
,
β
,
γ
, a matriz de rotação é dada por
+
+
−
−
+
−
+
−
=
γ
α
γ
α
γ
β
α
γ
α
γ
β
α
β
α
γ
α
γ
β
α
γ
α
γ
β
α
β
γ
β
γ
β
cos
cos
cos
sin
sin
sin
cos
sin
sin
cos
sin
cos
cos
sin
cos
cos
sin
sin
sin
sin
cos
cos
sin
sin
sin
sin
cos
cos
cos
R
A rotação em torno do vetor
n
=
[
n
1n
2n
3]
T unitário é
−
−
−
+
−
+
=
0
0
0
sin
)
cos
1
(
cos
1 2 1 3 2 3 2 3 2 3 1 3 3 2 2 2 1 2 3 1 2 1 2 1n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
I
R
θ
θ
θ
Projeção Ortográfica
Redução para um espaço de dimensão menor.
No caso da projeção ortográfica, perdemos a informação do eixo z.
=
w
z
y
x
P
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
ou simplesmente
=
w
z
y
x
P
1
0
0
0
0
0
1
0
0
0
0
1
w
W
Z
y
Y
x
X
=
=
=
=
0
Projeção Perspectiva
Várias formulações possíveis
C
P
f
y´
y
=
′
=
′
=
′
x
z
f
x
y
z
f
y
z
y
f
y
Em coordenadas homogêneas:z
w
fx
x
fy
y
=
′
=
′
=
′
=
w
z
y
x
f
f
P
0
1
0
0
0
0
0
0
0
0
, ou então
=
w
z
y
x
f
P
0
1
0
0
0
0
1
0
0
0
0
1
Outro modelo.
C
P
f
y´
y
z
+
=
′
+
=
′
+
=
′
x
f
z
f
x
y
f
z
f
y
f
z
y
f
y
Em coordenadas homogêneas:f
z
f
f
z
w
x
x
y
y
+
=
+
=
′
=
′
=
′
1
=
w
z
y
x
f
P
1
1
0
0
0
0
1
0
0
0
0
1
Mais um modelo
C
P
f
y´
y
z
−
=
′
−
=
′
−
=
′
x
f
z
f
x
y
f
z
f
y
f
z
y
f
y
Em coordenadas homogêneas:1
−
=
−
=
′
=
′
=
′
f
z
f
f
z
w
x
x
y
y
−
=
w
z
y
x
f
P
1
1
0
0
0
0
1
0
0
0
0
1
Pontos de Fuga
Os pontos de fuga numa imagem de perspectiva são os pontos em que as imagens das retas paralelas de uma cena se encontram.
Para nós, é simplesmente a projeção perspectiva de pontos no infinito.
Se a transformação de um ponto no infinito resultar um ponto no infinito, as retas paralelas naquela direção são também paralelas na imagem.
Se a transformação de um ponto no infinito resultar um ponto finito, as retas paralelas naquela direção são concorrentes na imagem sobre esse ponto.
Pontos de Fuga
Resultado da seguinte matriz de projeção
+
=
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
px
z
y
x
z
y
x
p
Aplicando ao ponto no infinito no eixo x
=
=
1
0
0
/
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
p
p
p
Resultado da seguinte projetividade:
+
+
+
=
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
pz
py
px
z
y
x
z
y
x
r
q
p
Aplicando aos pontos no infinito da direção dos eixos x, y e z e à origem:
→
1
0
0
0
,
1
/
1
0
0
,
1
0
/
1
0
,
1
0
0
/
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
r
q
p
r
q
p
Exemplo – encontrar os pontos de fuga da seguinte transformação para as retas paralelas ao eixo x, ao eixo y e ao eixo z.
−
−
−
−
−
−
1
245
.
0
283
.
0
141
.
0
0
0
0
0
0
612
.
0
707
.
0
354
.
0
0
5
.
0
0
866
.
0
Resposta: O ponto de fuga de
−
−
−
−
−
−
1
245
.
0
283
.
0
141
.
0
0
0
0
0
0
612
.
0
707
.
0
354
.
0
0
5
.
0
0
866
.
0
para o eixo x é
−
−
141
.
0
0
354
.
0
866
.
0
.Em coordenadas cartesianas é o ponto
−
1
0
5
.
2
142
.
6
ou(
−
6
.
142
,
2
.
5
)
da imagem. Os pontos de fuga para o eixo y e z são respectivamente(
0
,
−
2
.
5
)
e(
2
.
04
,
2
.
5
)
Exemplo
Translação para traz e para frente.
Mudança da distância focal em cada um dos modelos de projeção perspectiva. Encontrar os pontos de fuga para uma dada matriz de transformação.