Post on 27-Nov-2018
Transformações 2D - Translação
• Cada vértice é modificado
• Utiliza-se vetores para representar a transformação
y
x
tyy
txx
+=
+=
'
'
=
ty
txtr
3
a transformação
• Um ponto p(x,y) torna-se um vetor
• Assim, a translação torna-se uma mera soma de vetores
=
y
xpr
tpprrr
+='
ty
Transformações 2D - Escala
• Coordenadas são multiplicadas pelos fatores de escala
• Tipos de Escala
y
x
syy
sxx
.'
.'
=
=
4
• Tipos de Escala– Uniforme:
• sx = sy
– Não-Uniforme
• sx <> sy
• Escala é uma multiplicação de matrizes
=
+
+=
=
y
x
y
x
y
x
sy
sx
syx
ysx
y
x
s
s
y
x
.
.
..0
.0..
0
0
'
'
Transformações 2D - Rotação
• Como chegar à matriz de rotação?
)sin(.' )cos(.'
sin. cos.
βαβα
αα
+=+=
==
ryrx
ryrx
6
Transformações 2D - Rotação
• Como chegar à matriz de rotação?
βαβα
βαβα
αα
sin.sin.cos.cos.'
)sin(.' )cos(.'
sin. cos.
rrx
ryrx
ryrx
−=
+=+=
==
7
ββ
ββ
βαβα
βαβα
cos.sin.'
sin.cos.'
sin.cos.sin.cos.'
sin.sin.cos.cos.'
yxy
yxx
rry
rrx
+=
−=
+=
−=
βαβαβα
βαβαβα
sin.sincos.cos)cos(
cos.sinsin.cos)sin(
−=+
+=+
−=
y
x
y
x.
cossin
sincos
'
'
ββ
ββ
Transformações 2D – Reflexão
• Ocorre ao longo de uma linha
• Ao longo do eixo X
−=
− y
x
y
x.
10
01
8
• Ao longo do eixo Y
• Ao longo dos 2 eixos: XY
−=
−
y
x
y
x.
10
01
−
−=
−
−
y
x
y
x.
10
01
Transformações 2D – Deslizamento
• Shearing é uma transformação que distorce o objeto
• Distorção na direção x
+ yShxxSh .1
9
• Distorção na direção y
+=
y
yShx
y
xSh xx ..
10
1
+=
yxSh
x
y
x
Shxy .
.1
01
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
10
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?
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
11
escritas em forma matricial
• Para isto, escreva as notações matriciais das transformações:
y
x
tyy
txx
+=
+=
'
'
y
x
syy
sxx
.'
.'
=
=
ββ
ββ
cos.sin.'
sin.cos.'
yxy
yxx
+=
−=
Coordenadas Homogêneas
• Introduzida em Matemática
• Adiciona uma terceira coordenada w
• Um ponto 2D passa a ser um vetor com 3 coordenadas
• 2 pontos são iguais se e somente se:
w
y
x
yyxx ''
12
• 2 pontos são iguais se e somente se:
• Homogeneizar: dividir por w
• Pontos homogeneizados:
w
y
w
y
w
x
w
x==
'
' e
'
'
1
y
x
Translação – Coord. Homogêneas
′ x
′ y
′ w
=
1 0 tx
0 1 ty
0 0 1
x
y
w
′ x
′ w
′ y
′ w
=
=
xw + tx
y
w + ty
tpprrr
+='
13
′ x
′ y
′ w
=
=
=
x + wtx
y + wty
w
′ w = w + y
Escala – Coord. Homogêneas
′ x
′ y
′ w
=
sx 0 0
0 sy 0
0 0 1
x
y
w
′ x
′ w
′ y
′ w
=
=
sxxw
sy
y
w
14
′ x
′ y
′ w
=
=
=
sxx
syy
w
′ w y w
Rotação – Coord. Homogêneas
′ x
′ y
′ w
=
cosθ − sinθ 0
sinθ cosθ 0
0 0 1
x
y
w
′ x
′ w
′ y
′ w
=
=
cosθ xw − sinθ y
w
sinθ xw + cosθ y
w
15
′ x
′ y
′ w
=
=
=
cosθx − sinθy
sin θx + cosθy
w
′ w = sinθ w + cosθ w
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:
16
• 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
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)
dy
dx
txtxdx
10
01
18
−=
19
framesofnumber
dyy
framesofnumber
dxx
dy
__
__
100
10
=∆
=∆
Animação
S1=(sx1,sy1)
S8=(sx8,sy8)
Sy
Sx
SSSx
00
00
18
−=
20
framesofnumber
Syy
framesofnumber
Sxx
Sy
__
__
100
00
=∆
=∆
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
22
dimensão a mais, mas também pelo fato do dispositivo de exibição ser 2D
X
Y
2D
Exercício:
• Translade em (2,-3) a figura abaixo:
(8,6)
24
• Quais as coordenadas dos 4 vértices da figura transladada?
(2,4)
Resposta:
• Translade em (2,-3) a figura abaixo:
25
• Quais as coordenadas dos 4 vértices da figura transladada? (4,1), (4,3), (10,3) e (10,1)
(0,1)
(10,3)
Resposta:
• Monte a matriz e rotacione em (45 graus) o ponto abaixo:
− ′ 2045sin45cosx
27
(2,4)(-1,4;4,2)
−
=
′
′
′
1
4
2
100
045cos45sin
045sin45cos
w
y
x