Anda di halaman 1dari 21

Computao Grfica

Transformaes Geomtricas 2D
Aula 8
Prof. Esp. Danilo Augusto
daniloaugusto@gmail.com

Reviso de Matrizes - Conceitos
Quando o nmero de linhas igual ao de colunas
dizemos que a matriz quadrada.
(

=
23 22 21
13 12 11
a a a
a a a
A
A uma matriz 2 x 3 e pode ser representada do
seguinte modo:
(

=
22 21
12 11
a a
a a
A
Reviso de Matrizes - Operaes
Multiplicao por escalar
(

=
(

22 . 21 .
12 . 11 .
22 21
12 11
a r a r
a r a r
a a
a a
r
Adio (definida apenas para matrizes de mesma
dimenso)
(

+ +
+ +
=
(

+
(

22 22 21 21
12 12 11 11
22 21
12 11
22 21
12 11
b a b a
b a b a
b b
b b
a a
a a
Reviso de Matrizes - Operaes
Multiplicao (definida apenas para matrizes
onde o nmero de colunas da primeira o mesmo
que o nmero de linhas da segunda) A.B = B.A

(

+
=
(

... ...
... 21 . 12 11 . 11
22 21
12 11
22 21
12 11 b a b a
b b
b b
a a
a a
(

+
=
(

... ...
22 . 12 12 . 11 ...
22 21
12 11
22 21
12 11 b a b a
b b
b b
a a
a a
Transformaes Geomtricas 2D
Em aplicaes grficas comum apresentar uma
mesma figura geomtrica em diversas posies e tamanhos
no espao. Quer seja para criar vrias instncias para
compor uma cena, quer seja para animar uma instncia.
Essas variaes de posio e tamanho podem ser
conseguidas atravs da aplicao de transformaes
geomtricas bsicas como: translao, rotao e escala.
Transformao de Translao
Transladar significa deslocar um objeto no espao. Essa
operao classificada como transformao de corpo
rgido, pois no deforma a estrutura geomtrica da
figura.
(x,y)
(x,y)
(x,y)
Tx
Ty
Transformao de Translao
(x,y)
(x,y)
Tx
Ty
A transformao pode ser
descrita como:
x=x+Tx
y=y+Ty
Ou matricialmente P=P+T
(

+
(

=
(

ty
tx
y
x
y
x
'
'
Transformao de Escala
Escalonar significa mudar as dimenses de escala.
Como essa operao deforma o objeto, no
considerada uma transformao de corpo rgido.
(x,y)
(x,y)
Transformao de Escala
(x,y)
(x,y)
A transformao pode ser
descrita como:
x=x.Sx
y=y.Sy
Ou matricialmente P=S.P
(

=
(

y
x
Sy
Sx
y
x
.
0
0
'
'
Transformao de Escala
Note que a mudana de escala de objetos no na origem
acompanhada por uma translao. Se os fatores (Sx,Sy)
no forem iguais, o objeto tambm se deforma.
Transformao de Rotao
Rotacionar significa girar em torno de um ponto. Essa
operao classificada tambm como transformao de
corpo rgido.
u
Transformao de Rotao
Ou matricialmente P=R.P
(


=
(

y
x
y
x
.
cos sen
sen cos
'
'
u u
u u
Note que essa matriz faz a rotao em torno da
origem do sistema de coordenadas com um ngulo u.
Transformao de Rotao
Para rotacionar em torno de um ponto P qualquer,
necessrio compor a operao de rotao com
operaes de translao.
Coordenadas Homogneas
Como observado, comum combinar transformaes para
aplicar a um conjunto de pontos. Desta maneira,
interessante compor uma matriz que rena vrias
transformaes.
Para este propsito, todas as transformaes devem ser
descritas como um produto de matrizes que pode ser
previamente calculado. As operaes de rotao e escala j
se encontram desta forma, porm a translao no.
Transformaes utilizando
coordenadas homogneas
Translao (P=T.P)
(
(
(

(
(
(

=
(
(
(

1
.
1 0 0
1 0
0 1
1
'
'
y
x
Ty
Tx
y
x
Transformaes utilizando
coordenadas homogneas
Rotao (P=R.P)
(
(
(

(
(
(


=
(
(
(

1
.
1 0 0
0 cos sen
0 sen cos
1
'
'
y
x
y
x
u u
u u
Transformaes utilizando
coordenadas homogneas
Escala (P=S.P)
(
(
(

(
(
(

=
(
(
(

1
.
1 0 0
0 0
0 0
1
'
'
y
x
Sy
Sx
y
x
Rotao com Translao para a origem
Escala com Translao para a origem
Exerccios Aula 8
1) Encontre as matrizes de transformao ou os
pontos obtidos.
Obs.: Resolva utilizando coordenadas homogneas. Demonstre todo o processo
de resoluo.

a) Translao do Ponto [1 3] para o Ponto [2 5].
b) Escalonamento do Ponto [4 5] por [0.5 0.5].
c) Rotao do Ponto [2 2.5] em 30
Exerccios Laboratrio
Desenvolva programas utilizando as coordenadas
homogneas para:
2) Aplicar as transformaes geomtricas sobre um
ponto
3) Aplicar as transformaes geomtricas sobre um
retngulo (pode-se utilizar drawLine para desenhar o retngulo).
4) Desenhar o retngulo e aplicar as transformaes
geomtricas utilizando Java2D