Aula 8 - CG - Transformations 2D Pt
-
Upload
hudson-martins -
Category
Documents
-
view
4 -
download
0
description
Transcript of Aula 8 - CG - Transformations 2D Pt
-
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 ?????