Transf2D 2013

Você também pode gostar

Você está na página 1de 29

Transformações 2D

Soraia Raupp Musse

1
Transformações 2D - Translação

Posição inicial
Translação
Posição final

2
Transformações 2D - Translação
x' = x + t x
• Cada vértice é modificado
y' = y + t y

r tx 
• Utiliza-se vetores para representar t =  
a transformação ty 
• Um ponto p(x,y) torna-se um vetor r  x 
p= 
 y
• Assim, a translação torna-se uma
mera soma de vetores
r r r
p' = p + t
3
Transformações 2D - Escala
• Coordenadas são multiplicadas pelos
fatores de escala x' = x.s x

y ' = y.s y
• Tipos de Escala
– Uniforme:
• sx = sy
– Não-Uniforme
• sx <> sy
• Escala é uma multiplicação de matrizes

 x'  s x 0   x   x.s x + 0. y   x.s x 


 y ' =  0 .  =   =
s y   y  0.x + y.s y   y.s y 

  
4
Transformações 2D - Rotação
• Como chegar à matriz de rotação?

5
Transformações 2D - Rotação
• Como chegar à matriz de rotação?

x = r. cos α y = r. sin α
x' = r. cos(α + β ) y ' = r. sin(α + β )

6
Transformações 2D - Rotação
• Como chegar à matriz de rotação?
x = r. cos α y = r. sin α
x' = r. cos(α + β ) y ' = r. sin(α + β )

x' = r. cos α . cos β − r. sin α . sin β


y ' = r. cos α . sin β + r. cosα . sin β

x' = x. cos β − y. sin β sin(α + β ) = cos α . sin β + sin α . cos β


cos(α + β ) = cos α . cos β − sin α . sin β
y ' = x. sin β + y. cos β

 x'  cos β − sin β   x 


 y ' =  sin β . 
cos β   y 
  
7
Transformações 2D – Reflexão
• Ocorre ao longo de uma linha
• Ao longo do eixo X
1 0   x   x 
0 − 1. y  = − y 
    

• Ao longo do eixo Y
− 1 0  x  − x 
 0 1. y  =  y 
    

• Ao longo dos 2 eixos: XY


− 1 0   x   − x 
 0 − 1. y  = − y 
    

8
Transformações 2D – Deslizamento
• Shearing é uma
transformação que distorce o
objeto
• Distorção na direção x
1 Shx   x   x + Shx . y 
0 1 . y  =  y 
    

• Distorção na direção y
 1 0  x   x 
 Sh =
1  y   Shx .x + y 
.
 y

9
Resumo Transformações 2D
• Applet – Transformações 2D
• Notação Vetor-Matriz simplifica escrita
– Translação expressa como uma soma de vetores
– Escala e Rotação expressas como multiplicação Matriz-
Vetor
• Porém, é interessante uma notação uniforme e
consistente
– Permitir que se expresse as três operações de maneira
idêntica
– Permitir que se expresse a combinação destas três
operações também de maneira idêntica
• Como fazer isso?

10
Matriz Transformação
• Produzir uma matriz que seja o resultado da
multiplicação das transformações a serem
aplicadas no objeto
• Problema: Todas as operações básicas devem ser
escritas em forma matricial
• Para isto, escreva as notações matriciais das
transformações:
x' = x.s x x' = x. cos β − y. sin β x' = x + t x
y ' = y.s y y ' = x. sin β + y. cos β y' = y + t y

11
Coordenadas Homogêneas
• Introduzida em Matemática
x
• Adiciona uma terceira coordenada w  y
• Um ponto 2D passa a ser um vetor com 3  
 w
coordenadas
• 2 pontos são iguais se e somente se: x' x y' y
= e =
• Homogeneizar: dividir por w w' w w' w
• Pontos homogeneizados:
x
 y
 
 1 

12
Translação – Coord. Homogêneas
r r r
p' = p + t
 x′ 
 y′  =
1
0
0 t x  x 
1 t y  y 
 xw′′ = wx + t x
 
w ′

0
   y′ y
0 1   w
 w′ = w + t y
 x ′ = x + wt x

 y ′ = y + wt y
w ′ = w

13
Escala – Coord. Homogêneas

 x ′  s x 0  x 
  
0
   xw′′ = s x x
w
y′ = 0
  
w ′  0
sy 0 y
 
1 w 
 y′ y
0
 w′ = sy w

 x ′ = sx x

 y ′ = sy y

w ′ = w

14
Rotação – Coord. Homogêneas

 x ′  cos θ − sin θ 0  x 
 y ′  =  sin θ cos θ 0  y 
    
w ′  0 0 1 w   xw′′ = cos θ wx − sin θ y

 y′
w

 w ′ = sin θ wx + cos θ y
w

 x ′ = cos θx − sin θ y

 y ′ = sin θx + cos θ y
w ′ = w

15
Composição de Transformações

• Para realizar composição de transformações, basta


efetuar uma multiplicação de matrizes
– Ex: Composição de uma rotação e uma translação
• M = R.T
• Rotação ao redor de um ponto Q:
– translada Q para origem (TQ),
– rotaciona ao redor da origem (RΘ)
– translada de volta para Q (- TQ).

P’=(-TQ)RΘTQ P

16
Composição de Transformações

• Observações
– Multiplicação de Matrizes não é comutativa
– Ordem das operações influencia diretamente
• Rotação seguida de translação é muito diferente de translação
seguida de rotação.

17
Matriz de Transformação

Multiplicação de todas as matrizes que


compõem as operações a serem sofridas
pelo(s) objeto(s).

18
Animação

T1=(tx1,ty1) T8=(tx8,ty8)
dx = tx8 − tx1
1 0 dx 
0 1 dy 
 
0 0 1 
dx
∆x =
number _ of _ frames
dy
∆y =
number _ of _ frames
19
Animação

S1=(sx1,sy1) Sx = S 8 − S1
 Sx 0 0 S8=(sx8,sy8)
 0 Sy 0
 
 0 0 1
Sx
∆x =
number _ of _ frames
Sy
∆y =
number _ of _ frames

20
Física

21
Pipeline de Visualização

• Em 2D as coisas são mais simples que em 3D


– Simplesmente especificar uma janela do mundo 2D e
uma viewport na superfície de visualização
• A complexidade começa em 3D, pelo fato de termos uma
dimensão a mais, mas também pelo fato do dispositivo
de exibição ser 2D
Y

X
2D

22
Pipeline 2D

• SRO
• SRU
• SRW
(recorte 2D)
• SRV
• SRD

23
Exercício:

• Translade em (2,-3) a figura abaixo:

(8,6)

(2,4)

• Quais as coordenadas dos 4 vértices da figura


transladada?

24
Resposta:

• Translade em (2,-3) a figura abaixo:

(10,3)

(0,1)

• Quais as coordenadas dos 4 vértices da figura


transladada? (4,1), (4,3), (10,3) e (10,1)

25
Exercício:
• Monte a matriz e rotacione em (45 graus) o ponto
abaixo:

(2,4)

26
Resposta:
• Monte a matriz e rotacione em (45 graus) o ponto
abaixo:

 x′  cos 45 − sin 45 0 2


(-1,4;4,2) (2,4)  y′  =  sin 45 cos 45 0 4
    
 w′  0 0 1 1

27
Instanciamento: Coordenadas

28
Instanciamento: Coordenadas

Considere que todas as figuras geométricas


necessárias na casinha tem coordenadas do
seu vértice inicial (esq-abaixo) como (0,0).
Considere que a escala e rotação estão ok,
Quais operações devem ser feitas para
modelar a casa acima?
29

Você também pode gostar