You are on page 1of 26

Transformaes Compostas

Introduo Coordenada Homogneas


Coordenadas Homogneas so uma representao dos pontos, vetores e matrizes, a qual facilita a generalizao das operaes entre esses tipos de objetos. Para computao grfica em 2D, e tambm para 3D, um ponto (x,y) passa a ser representado por (x,y,h), com h assumindo o valor da unidade. Pontos so representados por (x,y,1).

Introduo Coordenada Homogneas


Ao expressarmos posies em coordenadas homogneas, as equaes de transformaes geomtricas ficam reduzidas a multiplicao de matrizes 3x3 elementos. As coordenadas so representadas vetores-colunas. Operaes de transformao so matrizes com 3x3 elementos.

Translao
P=T(tx,ty).P

x y z

1 0 0

0 1 0

tx ty 1

x y 1

Rotao
P=R().P

x y z

cos -sen 0 sen cos 0 0 0 1

x y 1

Escala
P=S(Sx,Sy).P

x y z

Sx 0 0 0 Sy 0 0 0 1

x y 1

As transformaes inversas so dadas por T(-tx,ty), R(- ) e S(1/Sx,1Sy), respectivamente. Outras transformaes especiais (reflexo ou mudana de sistema de referncia) podem ser facilmente formalizadas em coordenadas homogneas.

Transformaes compostas em coordenadas homogneas


Chamamos as composies de transformaes de concatenaes, por serem feitas de forma seqencial. Podem ser agrupadas em uma nica matriz de transformao, obtida pelo produto das transformaes que a compem.

Concatenao de Translaes
Se duas translaes sucessivas so aplicadas a uma posio P, a posio final P=T(tx1,ty1).{T(tx2,ty2).P}={T(tx1,ty1).T(t x2.ty2)}.P Na forma matricial:
1 0 0 0 tx2 1 1 ty2 . 0 0 1 0 0 tx1 1 ty1 0 1
=

1 0 tx2+tx1 0 1 ty2+ty1 0 0 1

Concatenao de Rotaes
Se duas rotaes sucessivas aplicadas a uma posio P, a posio final P dada por P=R(1).{R(2).P}= {R(1).R(2).}P Intuitivamente, rotaes consecutivas tambm devem se comportar de forma aditiva. Na forma matricial:
cos 1 -sen 1 0 sen 1 cos 1 0 0 0 1
.

cos 2 -sen 2 0 sen 2 cos 2 0 0 0 1

= ?

Concatenao de Rotaes
Mas lembrando que: cos(+) = cos . cos - sen. cos sen (+) = sen .cos + sen .cos
cos(1 +2) -sen (1 +2) 0 sen (1 +2) cos (1 +2) 0 0 0 1

Concatenao de Escalas
Se duas transformaes de escalas sucessivas so aplicadas a uma posio P, a posio final P dada por
P=S(sx2,sy2).{S(sx1,sy1).P}= ={S(sx2,sy2).S(sx1,sy1)}.P

Sx2 0 0 Sy2 0 0

0 0 1

Sx1 0 0 Sy1 0 0

0 0 1

Sx1.Sx2 0 0 Sy1.Sx2 0 0

0 0 1

Concatenao de Transformaes Geomtricas


Uma transformao bidimensional genrica representando uma combinao de translao, rotao e escala pode ser expressa.
x y z rSx 0 0 0 Sy 0 . 0 0 1 x y 1

Concatenao de Rotaes
Sx.cos -Sy.sen xc(1-Sx.cos )+yc.Sy. sen +tx Sx.sen Sy.cos yc(1-Sy.cos )+xc.Sx. sen +ty 0 0 1

Onde (xc,yc) representa o centro em torno do qual ser aplicada a rotao

Transformaes Especiais

Reflexo com relao ao eixo X


As coordenadas X permanecem iguais, mas as coordenadas Y trocam de sinal. Matriz de Transformao:

1 0 0

0 -1 0

0 0 1

Reflexo com relao ao eixo Y


As coordenadas Y permanecem iguais, mas as coordenadas X trocam de sinal. Matriz de transformao:

-1 0 0

0 1 0

0 0 1

Reflexo com relao origem


As coordenadas X e Y trocam de sinal. Matriz de transformao:

-1 0 0

0 -1 0

0 0 1

Reflexo com relao reta Y=X


As coordenadas X e Y so invertidas. Matriz de transformao:

0 1 0

1 0 0

0 0 1

Reflexo com relao reta Y=-X


As coordenadas X e Y so invertidas e trocam de sinal. Matriz de transformao:

0 -1 0

-1 0 0

0 0 1

Distoro angulares em uma nica direo: Shears


As distores do tipo shear resultam numa inclinao do objeto numa dada direo. Uma de suas aplicaes a transformao de fontes de texto no estilo itlico, como por exemplo a letra M As coordenadas Y no so alteradas, mas as coordenas X sofrem uma escala que funo de Y:
x= x+shx.y

Shears na direo X

1 0 0

shx 0 1 0 0 1

Shears na direo Y
As coordenadas X no so alteradas, mas as coordenadas Y sofrem uma escala que funo de X:
y= y + shy.x

1 0 0 shy 1 0 0 0 1

Ordem das Transformaes


Quando se aplica uma seqncia de transformaes, a ordem das transformaes elementares tem um papel fundamental sobre o resultado final. Aplicar uma rotao seguida de uma translao no tem o mesmo resultado de uma translao seguida de uma rotao.

Ordem das Transformaes


Para esclarecer esse fato devemos lembrar que matrizes em matrizes a ordem dos fatores altera o produto.
C=AxB, CT=BxA

Exerccio
Determine a matriz de coordenadas homogneas que equivale a seguinte seqncia de transformaes : translao(5,18), rotao (30o ) e escala (1.5,3) Determine a matriz de coordenadas homogneas que equivale a seguinte seqncia de transformaes : translao(7,-8), rotao (130o ) e translao (-7,8) Mostre que reflexes sucessivas sobre os eixos equivalem a uma rotao simples, tendo a origem dos eixos como pivot.

Exerccios
Desenvolva um programa (em qualquer linguagem) que, fazendo uso das rotinas de rotao e coordenadas homogneas, aplique sucessivas rotaes a um objeto, mostrando na tela. O objeto original no deve ser alterado. Desenvolva um programa que faa translaes sucessivas de um objeto em funo da posio do mouse.

Exerccios
Faa uma rotina que, dados os parmetros de translao (tx,ty), rotao () e escala (sx, sy), monte uma matriz A[3x3] com a a transformao completa em coordenadas homogneas.

You might also like