Professional Documents
Culture Documents
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
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.
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
.
= ?
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 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
Transformaes Especiais
1 0 0
0 -1 0
0 0 1
-1 0 0
0 1 0
0 0 1
-1 0 0
0 -1 0
0 0 1
0 1 0
1 0 0
0 0 1
0 -1 0
-1 0 0
0 0 1
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
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.