Post on 09-Jan-2016
description
Informtica
1
Transformaes Geomtricas
Aula Computao Grfica
Informtica
2
Como Usar Transformaes Geomtricas?
Objetos em uma cena so colees de pontos
Esses objetos possuem
Localizao
Orientao
Tamanho
Esses parmetros correspondem a
Translao (T)
Rotao (R)
Escala (S)
Informtica
3
Como Usar Transformaes Geomtricas?
Uma cena tem uma cmera/ponto de vista de onde observada
A cmera tem uma localizao e uma orientao no espao 3D
Esses parmetros correspondem a transformaes
Translaes e Rotaes
Outros tipos de transformaes de visualizao so necessrias
Visto em aulas futuras
Informtica
4
Conceitos Necessrios de lgebra Linear
Geometria em coordenadas 3D
Vetores no espao 2D e 3D
Produto escalar e produto vetorial (definio e uso)
Notaes bsicas de vetor e matriz
Matriz identidade
Associatividade multiplicativa
Ex.: (AB)C = A(BC)
Matriz transposta e inversa
Sistema de coordenadas homogneas
(x, y, z, w)
Informtica
5
Transformaes Lineares
Padro de representao no slides Vetores: Negrito-Itlico (v)
Escalares: Itlico (c)
Qualquer vetor no plano pode ser definido pela soma de dois vetores no colineares
Lembre-se que a base para um espao vetorial um conjunto de vetores com as seguintes propriedades: Os vetores so linearmente independentes
Qualquer vetor nesse espao pode ser representado por uma combinao linear dos vetores base.
A multiplicao de um vetor por um escalar altera a magnitude do vetor
v = a + bv
b
a
Informtica
6
Transformaes Lineares
Funo linear deve atender duas propriedades:
1) f(v+w) = f(v) + f(w) para todo v e w no domnio de f
2) f(cv) = cf(v) para todo escalar c e elementos v no domnio
Exemplo da propriedade 1
f(x) = f(x1 , x2) := (3x1+2x2 , -3x1+4x2) f(v+w) = f(v1+w1 , v2+w2)
= (3(v1+w1)+2(v2+w2) , -3(v1+w1)+4(v2+w2))
= (3v1+2v2 , -3v1+4v2) + (3w1+2w2 , -3w1+4w2)
= f(v) + f(w)e1
e2
f(e1)
f(e2)
Informtica
7
Transformaes Lineares
Uso grfico de funes lineares
Transformao de um ponto em torno da origem
Deixa a origem invariante
Funes lineares
Incluem Rotao e Escala
No inclui Translao
Qualquer transformao de um ponto
Resulta em outro ponto
Transformado em torno da origem
Informtica
8
Transformaes Lineares como Matrizes
Podem ser representadas como
Matrizes inversveis (no singulares)
Comeando com transformaes 2D que podem ser representas por matrizes 2x2:
Se e1 e e2 so os vetores base:
Ento as colunas da matriz de transformao T so T aplicada a e1 e e2:
T =a b
c d
e1 =1
0
, e2 =
0
1
T(e1)=a
c
, T(e2)=
b
d
Informtica
9
Transformaes Lineares como Matrizes
Isso significa que podemos derivar a matriz de transformao
Considerando como a transformao afeta os vetores base
A transformao de um vetor arbitrrio x = tem a forma:
Com isso, pode-se verificar o porqu da estratgia anterior
Substitua cada vetor base por x para obter:
2
1
x
x
21
21
2
1
2
1
dxcx
bxax
x
x
dc
ba
x
xT
c
a
dc
baT
0
1
0
1
d
b
dc
baT
1
0
1
0
Informtica
10
Transformao de Escala
Escalar x de 3 e y de 2 (Sx = 3, Sy = 2) v = (vrtice original); v = (novo vrtice)
v = Sv
Derivar S determinando como e1 e e2 deveriam ser transformados
Obtendo:
y
x
'
'
y
x
S=sx 0
0 sy
Escala X de Sx
Escala Y de Sy
Efeito colateral: Casa muda a posio em relao a origem
1
2
1
3
2
6
2
9
Informtica
11
Transformao de Escala
S uma matriz diagonal
Ela pode ser rapidamente verificada
S multiplica cada coordenada de v pelo fator de escala apropriado
Outras propriedades da escala
No preserva ngulos entre linhas em um plano
Exceto para escala uniforme
Se o objeto no estiver na origem
Ele vai se aproximar ou se afastar dela
Isso geralmente no desejvel
'
'
0
0
y
x
ys
xs
y
x
s
s
y
x
y
xSv
Informtica
12
Transformao de Rotao
Rotaciona de em torno da origem
v = (vrtice original);
v = (novo vrtice)
v = Rv
Derivar R determinando como e1 e e2 deveriam ser transformados
y
x
'
'
y
x
cos
sin
1
02e
Primeira coluna de R
Segunda coluna de R
Rq =cosq -sinq
sinq cosq
Informtica
13
Transformao de Rotao
R pode ser rapidamente verificada
R * v =
Outras propriedades da rotao
Transformao de corpo rgido
Preserva comprimento dos objetos
Preserva ngulos entre as partes dos objetos
Para objetos no centrados na origem
Uma translao indesejada introduzida
v'
'
'
cossin
sincos
cossin
sincos
y
x
yx
yx
y
x
x'= xcosq - ysinq
y'= xsinq + ycosq
Informtica
14
Transformao de Translao
E como fica a translao?
Translao no uma transformao linear
A origem no invariante
Portanto, no pode ser expressada por uma matriz 2x2
Existe alguma outra soluo?
Informtica
15
Transformao de Translao
E como fica a translao?
Translao no uma transformao linear
A origem no invariante
Portanto, no pode ser expressada por uma matriz 2x2
Existe alguma outra soluo?
Sim
Fazer: v = v + t, where t =
Porm, quebra a uniformidade No se pode tratar como as matrizes anteriores
dy
dx
Informtica
16
Transformao de Translao
Se pudssemos tratar tudo como matriz
Ento, poderamos combinar transformaes por matrizes
Usando multiplicao e associatividade
Vamos tentar usar uma matriz novamente
Como?
Coordenadas homogneas
Adicionar uma dimenso adicional (o eixo w)
Adicionar uma coordenada adicional (componente w)
Ento temos: 2D como 3D (hiperespao englobando o 2D)
Informtica
17
Coordenada Homogneas
Permite uniformizar todas as 3 transformaes bsicas
Representar escala, rotao e translao como matrizes 3x3
Comeamos com um ponto P2d no plano xy
Aplicamos o w para trazer para o hiperespao
P2d(x,y) => Ph(wx, wy, w), w0
O ponto resultante Ph Possui coordenadas diferentes
(x,y) = (wx,wy)
Ph(x, y, w), w 0
Informtica
18
Coordenada Homogneas
Com o ponto no novo espao e representado por Ph Transformaes homogeneizadas podem ser aplicadas
Transformaes representadas por matrizes com tamanho fixo
Para se obter o ponto no espao 2D original
Basta aplicar a transformada inversa
Dividir todas as componentes por w
Aps a diviso o vrtice v = ser representado por v =
y
x
1
y
x
Informtica
19
Coordenada Homogneas
As transformaes que vamos usar mantero w = 1
Ou seja, utilizaremos transformaes T que mapeiam
v = em v =
Como fazer isso para as transformaes que j derivamos?
Para as transformaes lineares
Basta fazer
1
y
x
1
'
'
y
x
100
0
0
dc
ba
Informtica
20
Transformao de Translao
A matriz de translao focar na ltima coluna
Para verificar a matriz, basta fazer:
Perceba que as coordenadas foram transladadas v permanece em coordenadas homogneas
100
10
01
dy
dx
T
v'Tv
11100
10
01
dyy
dxx
y
x
dy
dx
Informtica
21
Transformaes Homogeneizadas
Perceba que a escala e a rotao no foram afetadas
Essas 3 transformaes so chamadas de afins
Transformation Matrix
Scaling
Rotation
Translation
sx 0 0
0 sy 0
0 0 1
cosq -sinq 0
sinq cosq 0
0 0 1
1 0 dx
0 1 dy
0 0 1
Informtica
22
Transformaes Homogeneizadas
Exemplos
Escala de 15 em x e 17 em y
Rotao de 123
Translao de -16 em x e 18 em y
100
0170
0015
100
0)123cos()123sin(
0)123sin()123cos(
100
1810
1601
Informtica
23
Vetores vs Pontos
At agora s utilizamos o conceito de pontos
Porm, tambm podemos utilizar vetores
As coordenadas homogneas foram introduzidas para Facilitar a translao
Portanto pontos so representados por (x, y, 1)T
Um vetor pode ser rotacionado e escalado Mas no pode ser transladado, portanto (x, y, 0)T
Vamos focar nos pontos, ou seja, nos vrtices dos objetos
Informtica
24
Transformaes Inversas
Como achar as transformaes inversas?
Use a matriz inversa das transformaes
Graas a homogeneizao
Todas so invertveis
Transformation Matrix Inverse Does it make sense?
Scaling If you scale something by factor a, theinverse is scaling by 1/a
Rotation Inverse of rotation by is rotation by . The properties sin(-) = -sin() and cos(-) = cos() give this matrix. Also, the matrix is orthonormal, so inverse is just the transpose.
Translation If you translate by x, the inverse istranslation by -x
Informtica
25
Composio de Transformaes
Agora temos vrias ferramentas a disposio
Podemos combin-las
Um objeto em uma cena composto por vrios vrtices
O objeto usa vrias transformaes para ser formado
Como representamos isso por funes?
Transformao uma funo
Elas podem ser compostas por associatividade
(f o g)( i )
Equivalente a aplicar g e depois f:
f( g( i ) )
Informtica
26
Composio de Transformaes
Considere nossas funes f e g como matrizes (M1 e M2)
Considere nossa entrada como um vetor v
Nossa composio equivalente a M1M2v
Agora podemos formar transformaes complexas
Usando composio de transformaes bsicas
Por exemplo, TRSv
Podemos compor as matrizes em uma s antes de multiplicar
til para aumentar performance dado o alto nmero de vrtices
1100
00
00
100
0cossin
0sincos
100
10
01
y
x
s
s
dy
dx
y
x
Informtica
27
Composio de Transformaes
Importante: A ordem das transformaes importa!
Multiplicao de matrizes no comutativo!
Exemplo
01
1
2
2
3 4 5 6 7 8 9 10
3
4
5
6
Y
X0
1
1
2
2
3 4 5 6 7 8 9 10
3
4
5
6
Transladar dex = 6, y = 0, e rotacionar de 45o
Rotacionar de 45o e transladar de x = 6, y = 0
Informtica
28
Composio de Transformaes
Exemplo de composio
Comeo Fim-Escala uniforme de 3x-Rotao de 90-Ambos em torno do centro do objeto, no a origem
Informtica
29
Composio de Transformaes
Exemplo de composio
Simplifique o problema! Calcule o centro (vamos supor em x=3 e y=3)
Translade o objeto para a origem
Escale
Rotacione
Translade de volta
Comeo Fim-Escala uniforme de 3x-Rotao de 90-Ambos em torno do centro do objeto, no a origem
100
310
301
100
030
003
100
090cos90sin
090sin90cos
100
310
3011RSTT
Informtica
30
Composio de Transformaes
T-1RST
E se tivssemos misturado a ordem?
Vamos tentar RT-1ST
Escalou propriamente
Mas a rotao introduziu uma translao indesejada
cos90 -sin90 0
sin90 cos90 0
0 0 1
1 0 3
0 1 3
0 0 1
3 0 0
0 3 0
0 0 1
1 0 -3
0 1 -3
0 0 1
Informtica
31
Composio de Transformaes (Inversa)
Qual a inversa de uma sequncia de transformaes?
a composio das inversas na ordem invertida
(M1M2Mn)-1 = Mn
-1Mn-1-1M1
-1
Supondo que queiramos desfazer as transformaes aplicadas nos slides anteriores T-1RST
(T-1RST)-1 = T-1S-1R-1T
Ainda sim precisamos transladar a origem e levar de volta
100
310
301
100
090cos90sin
090sin90cos
100
03/10
003/1
100
310
301
TRST 1-1-1-
Informtica
32
Transformao de Cisalhamento
Transformao que distorce o formato do objeto
Aplica-se um deslocamento aos valores das coordenadas
O deslocamento proporcional ao valor das outras coordenadas de cada ponto transformado
Quadrados viram paralelogramas
Perceba a base da casa permanece horizontal mas desliza
Y
X0 1
1
2
2
3 4 5 6 7 8 9 10
3
4
5
6
4
10tan
11
Skew
2D non-homogeneous
100
010
0tan
11
Skew
2D homogeneous
Informtica
33
Forma Alternativa de Pensar
Pensamento natural
Transformaes mudam posio dos vrtices em relao aos eixos
Pensamento alternativo
Transformaes mudam os eixos dos sistemas de coordenadas
Essa forma facilita a representao no papel
Rotation Scaling Translation
Informtica
34
Perguntas ?????