Escolar Documentos
Profissional Documentos
Cultura Documentos
Coordenadas CG Pos Transf2D
Coordenadas CG Pos Transf2D
Para posicionar os objetos em relao ao sistema de coordenadas global (world coordinate system) alterar tamanho, orientao, posio Para mover os objetos (gerando uma animao) Para transformar descries de objetos entre diferentes sistemas de coordenadas Transformaes fundamentais: translao, rotao e escala
1) Transformaes Fundamentais
Sistemas de Coordenadas
Transformaes entre sistemas de coordenadas
Translao:
P(x, y)
trans
P(x, y)
Aplicaes grficas freqentemente requerem a transformao de descries de objetos de um sistema de coordenadas para outro Objeto pode ser descrito em um sistema de objetos no-cartesiano, e precisa ser convertido para um sistema cartesiano Em aplicaes de animao e modelagem, objetos individuais definidos em seu prprio sistema de coordenadas (SRO), coordenadas locais (SRO) so depois transformadas para posicionar os objetos no SRU
x = x + dx, P= x , y
y = y + dy dx dy
(1) (2)
P = x , T = y P = P + T
(3)
P(x, y)
x = sx . x,
x y = sx 0
y = sy . y
0 sy x y
(6)
P = S . P
sx, sy > 0 sx, sy > 1.0 sx, sy < 1.0 sx = sy sx sy
(5)
(7)
Obs.: ngulos so definidos como positivos quando a rotao feita no sentido anti-horrio, e negativo caso contrrio.
x = r . cos ,
y = r . sin
(8)
x = r . cos( + ) = r . cos . cos r . sin . sin (9) y = r . sin( + ) = r . cos . sin + r . sin . cos
Pode-se obter (6) substituindo (8) em (9)
P1 = (4, 5) P2 = (7, 5)
Observao
P1 = (2.1, 4.9) P2 = (4.9, 7.8)
P1 = (5, 2) P2 = (9, 2)
Aplicar qualquer transformao a um objeto equivalente aplicar a transformao inversa ao seu sistema de coordenadas!! A transformao inversa descrita pela inversa da matriz que define a transformao original Exerccio: verifique com os exemplos da apostila!
A transformao do sistema homogneo para o sistema cartesiano se d pela seguinte relao: (x,y) = (x/W,y/W)
P=
x y
P = x y W
2) Coordenadas Homogneas e Matrizes de Transformao Dizemos que dois conjuntos de coordenadas homogneas, [x y W] e [x y W] representam o mesmo ponto se e somente se um mltiplo do outro
(x, y, W) (x, y, W) x = tx y = ty W= tW
(0, 0, 0) no permitido W = 0 no permitido Se W 0 (x/w, y/w, 1) x/W, y/W coordenadas cartesianas do ponto homogneo
Outras vantagens do espao homogneo: evita o uso de casas decimais e vrgulas, bem como problemas ocasionados pela representao de nmeros muito grandes
Assim, (2,3,4,6) e (4,6,8,12) so diferentes representaes (no espao homogneo) para o mesmo ponto (no espao cartesiano)
(x,y,1) (x,y)
(10)
P = T(dx, dy) . P (11) O que acontece se um ponto P transladado para P e a seguir para P?
P = T(dx1, dy1) . P P = T(dx2, dy2) . P P = T(dx2, dy2) . (T(dx1, dy1) . P) = (T(dx2, dy2) . T(dx1, dy1)) . P (13) (14)
Obs.: Se tomarmos todas as triplas que representam o mesmo ponto, isto , todas as triplas da forma (tx, ty, tW), com t 0, obtemos uma linha no espao homogneo 3D. - Se homogeneizamos o ponto (dividimos por W), obtemos o ponto na forma (x, y, 1). - Os pontos homogeneizados definem um plano dado pela equao W = 1 no espao homogneo (x, y, W).
e
T(dx2, dy2) . T(dx1, dy1) = Transformao de Composio 1 0 0 1 0 0 0 1 0 0 1 0 dx2 dy2 1 1 0 0 0 1 0 dx1 dy1 1 =
Escala
x y 1 = sx 0 0 sy 0 0 0 0 1 . x y 1
Rotao
(17) (18)
(19) (20) x y 1 = cos sin 0 -sin cos 0 0 0 1 x y 1
(22) (24)
P = R() . P Como exerccio, mostre que 2 rotaes so aditivas TRANSFORMAES AFINS: Seqncia arbitrria de rotaes, translaes e escalas. Preservam paralelismo de linhas, mas no preservam comprimentos e ngulos TRANSFORMAES DE CORPO RGIDO: Matrizes de transformao da forma
Sub-matriz ortogonal
e
S(sx2, sy2) . S(sx1, sy1) = sx2 0 0 sy2 0 0 = 0 0 1 sx1 0 0 sy1 0 0 0 0 1 =
M =
sx1.sx2 0 0 0 sy1.sy2 0 0 0 1
r11 r21 0
r12 r22 0
tx ty 1
3) Composio de Transformaes
Combinao de matrizes de transformao R, S e T Eficincia (uma s transformao composta substitui uma srie de transformaes sucessivas) Ex. 01: Rotao de um objeto em torno de um ponto arbitrrio P1:
1) Translao leva P1 origem 2) Efetua rotao 3) Efetua translao oposta
T(x1, y1) . S(sx, sy) . T(-x1, -y1) = = 1 0 0 0 x1 1 y1 0 1 sx 0 0 0 sy 0 0 0 1 1 0 0 0 -x1 1 -y1 0 1 = sx 0 0 0 sy 0 x1 . (1 sx) y1 . (1 sy) 1
(31)
1 0 0 cos sin 0
0 x1 1 y1 0 1 -sin cos 0
0 0 1
1 0 0
0 -x1 1 -y1 0 1
(30)
Obs.: Se M1 e M2 representam duas transformaes fundamentais (translao, rotao ou escala), existem alguns casos especiais em que: M1 M 2 = M2 M1
. .
5) Eficincia
Uma composio genrica de transformaes R, S e T, produz uma matriz da forma:
M = r11 r21 0 r12 r22 0 tx ty 1
M1
Translao Escala Rotao Escala Uniforme Escala
M2
Translao Rotao Rotao
O clculo de M.P requer 9 multiplicaes e 6 adies. Como a ltima linha da matriz constante, os clculos efetivamente necessrios so:
x = x . r11 + y . r12 + tx y = x . r12 + y . r21 + ty
Nestes casos, no precisamos nos preocupar com a ordem de construo da matriz de transformao.
Para obter a velocidade de apresentao necessria, as transformaes devem ser efetuadas sobre os pontos do objeto o mais rapidamente possvel. Uma aplicao em que a eficincia muito importante na criao de sucessivas vistas de um mesmo objeto. Se cada vista uma rotao de poucos graus da anterior, e puder ser gerada e apresentada suficientemente rpido, parecer ao observador que o objeto est sendo rotacionado continuamente (animao!). As equaes de rotao (7) requerem 4 multiplicaes e 2 adies, alm das 4 chamadas s funes trigonomtricas. Se pequeno (poucos graus), sabemos que cos 1. Nesse caso, podemos simplificar (7) para exigir 2 multiplicaes, 2 adies, duas chamadas a funes. (37)
x = x y . sin y = y + x . sin
A eficincia crtica nesse caso em particular (rotaes) porque os clculos envolvidos utilizam funes trigonomtricas e vrias multiplicaes em ponto-flutuante.
A equao acima aproxima os valores corretos de x, y, mas introduz um erro cumulativo. Uma aproximao melhor usaria x no lugar de x na 2a equao:
x = x y . sin y = x . sin + y = = (x y . sin) . sin + y = = x . sin + y . (1 sin2)
Matriz de rotao
R=
cos sin 0
-sin cos 0
0 0 1
Tomando as duas (trs) linhas da sub-matriz 2x2 (3x3) superior esquerda da matriz de rotao como 2 (3) vetores:
v1 = [cos - sin ], v2 = [sin cos ]
r11 . r11 + r12. r12 = 1 r21 . r11 + r22. r12 = 0 1 r11 . r21 + r12. r22 = 0 r21 . r21 + r22. r22 = 1 1
So vetores unitrios So perpendiculares entre si (seu produto escalar zero) Se esses vetores forem rotacionados pela matriz R(), eles iro se alinhar com as direes positivas dos eixos principais x e y (e z), respectivamente.
Exemplo
Essa informao til para derivar a matriz de rotao quando no se conhece o ngulo de rotao a ser aplicado, mas a orientao final desejada para o objeto:
definindo dois vetores unitrios ortogonais entre si, u e v, que descrevem a orientao desejada para o objeto, a matriz de rotao necessria para reposicionar o objeto original segundo essa orientao dada por:
ux uy 0 vx vy 0 0 0 1
x x = (1,0); y = (0,1);
v u = (0,1) v = (-1,0)
Uma forma equivalente de tratar transformaes geomtricas como uma mudana entre 2 sistemas de coordenadas: dado um objeto relativo a um sistema de referncia, queremos determinar suas coordenadas relativas a um outro sistema.
Fig. Um sistema de coordenadas Cartesiano x'y' posicionado em (x0, y0) com orientao em um sistema de coordenadas Cartesiano xy.
Fig. Posio do quadro de referncia mostrado na figura acima, aps transladar o sistema x'y' para que sua origem coincidisse com a origem do sistema xy.
Fig. Sistema de coordenadas Cartesiano x'y' com origem em P0=(x0, y0) e eixo y' paralelo a um vetor V.
P2
Fig. Um sistema Cartesiano x'y' definido com duas posies coordenadas, P0 e P1, dentro de um quadro de referncia xy.
P3 v B
P1
Direo de y dada por v: v= V = (vx, vy) V Direo de x dada por: u = R(-90) . v = (vy, -vx) = (ux, uy)
P2
v = (-1,0) xy
Exemplo
Objeto na posio A deve ser transformado para a posio B.
Requer uma rotao de 90 em relao ao sistema Oxy, seguida de uma translao para Ouv
Matriz que transforma as coordenadas do objeto de um sistema Oxy para um sistema Ouv denotada: M xy uv
Problema pode ser tratado como o da converso do objeto na posio B dado no sistema de referncia Ouv para o sistema Oxy Abordagem consiste em alinhar o sistema Oxy ao sistema Ouv
Uma forma alternativa consiste em definir a matriz de rotao em termos dos 2 vetores unitrios ortogonais entre si que definem a nova orientao do objeto
Transformao envolve a rotao de 90 (que alinha os eixos) seguida da translao de (xn,yn) que alinha as origens.
ux vx 0
uy 0 vy 0 0 1