Transformações Geométricas
 Monge - 1801 - Geometrie Descriptive
 Em Computação Gráfica exprimimos estas transformações através da Geometria Afim:
• as coordenadas de um ponto P’(x’, y’, z’), resultante
de uma transformação afim aplicada ao ponto
P(x,y,z), são obtidas através de uma função linear
do tipo:
P’ = M . P + B
• A Geometria Afim transforma:
– retas paralelas em retas paralelas
– pontos finitos em pontos finitos
 Transformações afins: translação, rotação, escalamento, espelhamento e cizalhamento
Transformações Geométricas
P’ = M . P + B
x’
y’
z’
=
a11
a21
a31
a12
a22
a32
a13
a23
a33
x
y
z
+
b1
b2
b3
 No caso das transformações 2D, a matriz M reduz-se a
uma matriz 2 X 2.
 A cada tipo de transformação, corresponde uma matriz
M diferente.
Translação
 Um objeto é transladado, transladando-se todos os
seus pontos.
 Um segmento de reta é transladado, transladando-se
os seus pontos extremos, e traçando-se uma nova
linha entre eles.
P = (x,y)
y
x’= x + dx
y’= y + dy
P’
y’
P’ = P + T
dy
y
P
dx
x
dx
x’
x
T =
dy
Transformações afins
• Rotação - Movimenta um ponto através de uma rotação efetuada em torno da origem das coordenadas.
• Escalamento - transforma um objeto em um outro
menor e mais próximo da origem
y
y
> 0
P
x
P’
x
Transformações afins
 Espelhamento - é a rotação em torno de um eixo, de tal
forma que é gerada a imagem especular do objeto.
Pode-se também fazer o espelhamento em torno de um
segmento genérico qualquer.
 Cizalhamento - provoca a deformação do objeto, mantendo, entretanto, uma direção paralela.
y
y
Cizalhamento
na direção x
Espelhamento
em torno de um
segmento genérico
x
x
Coordenadas Homogêneas
 As matrizes apresentadas não permitem que se combinem transformações facilmente, isto é, pela multiplicação das matrizes de transformações geométricas correspondentes a cada transformação.
 As coordenadas homogêneas permitem que este efeito
possa ser obtido.
mapeamento de
N em N+1
espaço N
[ a b]T
espaço N+1
[ aw bw w]T
Coordenadas Homogêneas
 Quando se exprimem pontos em coordenadas
homogêneas, as transformações geométricas podem
ser tratadas todas de uma mesma forma, como
multiplicações:
P’ = M . P
 M é chamada Matriz de Transformação.
 P é da forma [ x y 1]T e w foi tomado com o valor
arbitrário 1.
projeção de
N+1 em N
espaço N
[ a/w b/w]T
espaço N+1
[ a b w]T
Translação
x’
y’
1
1
0
0
=
0
1
0
dx
dy
1
x
y
1
T(dx, dy)
 Como se processa um conjunto de translações?
dx1
dy1
P
dx2
dy2
P’
P’’
 A matriz M, que leva de P a P’’, é dada pelo produto
T1 . T2, ou seja, T(dx1+dx2, dy1+dy2) . T é dita Matriz
Composição de T1 e T2
 Translações sucessivas são aditivas.
Escalamento
x’
y’
1
Sx
0
0
=
0
Sy
0
0
0
1
x
y
1
S(Sx, Sy)
 Como se processa um conjunto de escalamentos?
Sx1
Sy1
P
Sx2
Sy2
P’
P’’
 A matriz M, que leva de P a P’’, é dada pelo produto
S1 . S2, ou seja, S (Sx1.Sx2, Sy1.Sy2). M é dita Matriz
Composição de S1 e S2
 Escalamentos sucessivos são multiplicativos.
Rotação
x’
y’
1
cos sin 
sin  cos 
0
0
=
0
0
1
x
y
1
R ()
 Como se processa um conjunto de rotações?
1
P
2
P’
P’’
 A matriz M, que leva de P a P’’, é dada pelo produto
R1 . R2, ou seja, R (1 + 2).
 Rotações sucessivas são aditivas.
Composição de transformações
 Exemplo: Rodar um objeto em torno de um ponto P1.
 Neste caso, M será dada pelas seguintes transformações:
• Transladar P1 para a origem
• Rodar o objeto do ângulo estipulado
• Transladar da origem para P1
M = T(x1, y1) . R ( ) . T (-x1, -y1)
T (-x1, -y1)
P1
R ( )
T(x1, y1)
P1
 Os produtos não são comutativos
P1
Considerações sobre eficiência
 A Matriz Composição de translações, rotações e
escalamentos tem a forma geral:
r11
r21
0
r12
r22
0
tx
ty
1
composição de R e S
 Multiplicar M por P para calcular P’ exige 9 multiplicações (ponto flutuante) mais 6 adições. É mais eficiente fazer:
x’ = r11 . x + r12 . y + tx
y’ = r21 . x + r22 . y + ty
 Usando-se estas fórmulas serão feitas 4 multiplicações
mais 4 adições
Mudança de sistema de coordenadas
 Sistema de coordenadas locais - o de um objeto; por
exemplo, o de uma peça de mobiliário (cadeira, mesa)
 Sistema de coordenadas universais - o da cena; por
exemplo, da sala que está sendo mobiliada.
 Uma mudança de coordenadas é feita de um sistema
“J” para um sistema “I”, transformando-se os eixos de
“I” nos eixos do sistema “J”. A Matriz Composição que
permite estas transformações deve ser aplicada a
todos os objetos do sistema “J”.
P
8
4
2
P1 = (10,8) 5
P2 = (6,6)
P4 = (4,2)
2
4
2
1
4
10
Para transformar do
sistema 2 para o sistema 1, transladamse os eixos de 1 até
coincidirem com os
de 2 -> T(4,2)
Mudança de sistema de coordenadas
 Para transformar de “J” em “I”, tem-se:
j
Pi = M i
j . P
 Para transformar de “I” em “J”, tem-se:
-1
Pj
=M
i
j
. Pi
 Sempre existem as matrizes inversas das matrizes de
transformação
 Para transformar do sistema 4 para o sistema 1, é
necessário aplicar-se rotação e escalamento, porque
as divisões de escala neste sistema são a metade de
cada divisão do 1. Ver detalhes no livro do Foley.
 Estas matrizes são utilizadas nos problemas de
composição de objetos.
Transformações 3D
 É uma generalização do problema 2D. As matrizes de
translação e escalamento recebem uma componente
correspondente à coordenada z, e as matrizes se
tornam 4 X 4.
 A rotação no espaço é decomposta em três componentes: uma relativa a cada eixo.
y
> 0
z
Regra da mão
direita
x
Transformações 3D
cos() -sin() 0 0
Rz() = sin() cos() 0 0
0
0
1 0
0
0
0 1
Rx() =
cos()
Ry() = 0
- sin()
0
0
1
0
0
sin()
0
cos()
0
1
0
0
0
0
0
0
1
0
0
0
cos() -sin() 0
sin() cos() 0
0
0
1
Matrizes inversas
A matriz T(dx, dy,dz) tem como matriz inversa:
T(-dx, -dy, -dz)
A matriz S(Sx, Sy, Sz) tem como matriz inversa:
S( 1 , 1 , 1 )
Sx
Sy
Sz
A matriz R() tem como inversa a matriz:
R (- ) = RT ()
Rotação em torno de uma linha no
OpenGl
Exemplo: Rodar um objeto de 45o em torno de
uma linha que liga a origem ao ponto (1,2,3),
mantendo fixo o ponto (4,5,6).
primitivas
Model-view
Projection
Pipeline OpenGl
glMatrixMode(GL_MODELVIEW)
glLoadIdentity ( ) ---------------------------- C = I
glTranslatef(4.0,5.0,6.0) ------------------- C = C * T(P)
glRotetef(45,1.0,2.0,3.0) ------------------- C = C * R (45)
glTranslatef(-4.0,-5.0,-6.0) ---------------- C = C * T(-P)
Matriz Model-view
Matriz de transformações genéricas
 A Matriz Composição de translações, rotações e
escalamentos tem a forma geral:
r11
r21
r31
0
r12
r22
r32
0
r13 tx
r23 ty
r33 tz
0 1
composição de R e S
 Problema: Transformar o sistema 1 no sistema 2
y
P3
1
P1
z
y
P3
P2
x
2
P2
z
P1
x
Complementação
As transformações de translação e rotação são
chamadas transformações rígidas porque não
deformam o objeto. Já a transformação de escala e o cizalhamento deformam o objeto, alterando o tamanho ou os ângulos.
1
a
0
SHx = 0
1
0
0
0
1
Obs: A transformação de x é proporcional a y
SHy
1
= b
0
0
1
0
0
0
1
Referências Bibliográficas
Foley et al. Cap. 5
Correia, A. M. de A. Perspectivas de superfícies poliédricas auxiliadas por computador.
Escola Politécnica da Universidade de São
Paulo, São Paulo, SP. Dissertação de Mestrado, 1991. (Departamento de Eng. de Construção Civil)
Download

Transformações Geométricas - PCS