INF 366 Computação Gráfica Interativa Tranformaçõe Alberto B. Rapoo abrapoo@tecgraf.puc-rio.br http://www.tecgraf.puc-rio.br/~abrapoo/inf366 Sitema de Coordenada Objeto em Computação Gráfica pouem decriçõe numérica (modelo) que caracteriam ua forma e dimenõe. Ee número e referem a um itema de coordenada, normalmente o itema Carteiano de coordenada:, e. Em algun cao, preciamo de mai de um itema de coordenada: Um itema local para decrever parte individuai de uma máquina, por eemplo, que pode er montada epecificando-e a relação de cada itema local da vária peça. John Dingliana, 24
Tranformaçõe Em algun cao, objeto eibem imetria, de modo que apena parte dele precia er decrita, poi o reto pode er contruído por refleão, rotação e/ou tranlação do pedaço original. Um projetita pode querer viualiar um objeto ob vário ponto de vita, rotacionando-o ou movendo uma câmera virtual. Em animação, um ou mai objeto podem preciar e mover em relação ao outro, de modo que eu itema de coordenada locai devam er tranladado e rotacionado ao longo da animação. John Dingliana, 24 Eemplo Parte do objeto definida em itema de coordenada locai: etc... Objeto montado por meio de tranformação da parte contituinte: John Dingliana, 24 2
Eemplo 2 5 etapa de uma animação de um cubo girando A cada quadro da animação, o objeto é tranformado (rotação, nee cao). O objeto também poderia er tranformado pela mudança de tamanho (ecalamento), ua forma (deformação), ou ua localiação (tranlação). Outro efeito de animação ão obtido em alterar o objeto em i, ma a forma como ele é viualiado (tranformação window to viewport) a cada quadro (por eemplo, um oom). John Dingliana, 24 Tranformaçõe Há 2 forma de e energar uma tranformação Uma Tranformação de Objeto altera a coordenada de cada ponto de acordo com alguma regra, mantendo o itema de coordenada inalterado. Uma Tranformação de Coordenada produ um itema de coordenada diferente, e então repreenta todo o ponto originai nee novo itema. Cada maneira tem ua vantagem, e ão intimamente relacionada. John Dingliana, 24 3
TRANSFORMAÇÃO DE OBJETO.4, 2, John Dingliana, 24 TRANSFORMAÇÃO DE COORDENADAS (,) (,) Clae de Tranformaçõe Euclidiana / Corpo Rígido de Similaridade Lineare Afin Projetiva 4
Tranformaçõe Euclidiana Preervam ditância Preervam ângulo Identidade Corpo Rígido / Euclidiana Tranlação Tranlação Identidade Rotação Rotação MIT EECS 6.837, Durand and Cutler Tranformaçõe de Similaridade Preervam ângulo Similaridade Euclidiana Ecalamento Iotrópico Tranlação Identidade Rotação Ecalamento Iotrópico MIT EECS 6.837, Durand and Cutler 5
Tranformaçõe Lineare Ecalamento Refleão Shear Euclidiana Similaridade Linear Tranlação Identidade Rotação Ecalaento Iotrópico Ecalamento Refleão Shear MIT EECS 6.837, Durand and Cutler Tranformaçõe Lineare L(p + q) L(p) + L(q) L(ap) a L(p) MIT EECS 6.837, Durand and Cutler 6
Tranformaçõe Afin Preervamlinha paralela Euclidiana Identidade Tranlação Rotação Afin Similaridade Ecalaento Iotrópico Linear Ecalamento Refleão Shear Tranformaçõe Projetiva preervamlinha Projetiva Afin Similaridade Euclidiana Identidade Tranlação Rotação Ecalaento Iotrópico Linear Ecalamento Refleão Shear Perpectiva 7
Perpectiva Perpectiva é um do fatore que dá aparência 3D à cena Coordenada de modelagem Tranformaçõe 2D Ecalamento Tranlação Ecalamento Rotação Tranlação Coordenada do mundo 8
Coordenada de modelagem Tranformaçõe 2D Localiação inicial em (, ) com eio e alinhado Coordenada de modelagem Tranformaçõe 2D Scale.3,.3 Rotate -9 Tranlate 5, 3 9
Coordenada de modelagem Tranformaçõe 2D Scale.3,.3 Rotate -9 Tranlate 5, 3 Coordenada de modelagem Tranformaçõe 2D Scale.3,.3 Rotate -9 Tranlate 5, 3
VRML: Nó Tranform Eemplo em VRML The Annotated VRML Reference
Eemplo em VRML Ecalamento Ecalar uma coordenada ignifica multiplicar cada um de eu componente por um valor ecalar Ecalamento iotrópico ignifica que ee valor ecalar é o memo para todo o componente 2 2
Ecalamento Ecalamento não-iotrópico: valore ecalare diferente por componente: X 2, Y.5 Como repreentar o ecalamento na forma de matrie? Ecalamento Operação de ecalamento: a b Na forma matricial: a b Matri de ecalamento 3
John Dingliana, 24 Rotação 2D Q X Q Rco( θ + φ ) Rin( θ + φ ) [] [2] P Y Q θ P φ R P X P X P R co ( φ ) R in ( φ ) [3] [4] co ( θ+ φ) co () θ co () φ in () θ in () φ in ( θ+ φ) in () θ co () φ + co () θ in () φ [] Q Rco ( θ) co ( φ) Rin ( θ) in ( φ) Subtituindo de [3] e [4] Q P co ( θ) P in ( θ) Similarmente, a partir de [2] Q P co ( θ) + P in ( θ) (, ) Rotação 2D (, ) θ co(θ) - in(θ) in(θ) + co(θ) 4
5 Rotação 2D Na forma matricial: Emborain(θ) e co(θ) ejam funçõe nãolineare de θ, é combinação linear de e é combinação linear de e ( ) ( ) ( ) ( ) θ θ θ θ co in in co Tranlação 2D + + + t t t t t t t M. Gatta, PUC-Rio
Tranformaçõe 2D Báica Tranlação: + t + t Ecalamento: * * Rotação: *co -*in *in + *co Podem er combinada com álgebra imple Tranformaçõe 2D Báica Tranlação: + t + t Ecalamento: * * Rotação: *co -*in *in + *co 6
Tranformaçõe 2D Báica Tranlação: + t + t Ecalamento: (,) * (, ) * Rotação: *co -*in *in + *co * * Tranformaçõe 2D Báica Tranlação: + t + t Ecalamento: * * Rotação: *co -*in *in + *co (, ) (* ) *co - (* ) * in (* ) * in + (* ) * co 7
Tranformaçõe 2D Báica Tranlação: + t + t Ecalamento: * * Rotação: *co -*in (, ) *in + *co ((* )*co - (* )*in) + t ((* )*in + (* )*co) + t Repreentação Matricial Repreentar tranformação 2D por uma matri a b c d Multiplicar matri por vetor-coluna aplicar tranformação a um ponto a c b d a + b c + d 8
Repreentação Matricial Tranformaçõe ão combinada por multiplicação de matrie a c be d g f i h k j l Matrie ão uma forma conveniente e eficiente de repreentar uma eqüência de tranformaçõe Produto de Matrie C AB a a M a n 2 a a a 2 22 M n 2 L L O L a a a q 2 q M nq b b M b q 2 b b b 2 22 M q 2 L L O L b m b 2 m M b qm c ij q k a ik b kj neutro: I M L O M. Gatta, PUC-Rio 9
Matrie 22 Que tranformaçõe planare podem er repreentada com uma matri 22? Identidade 2D? Ecalemento 2D em torno de (,)? * * Matrie 22 Que tranformaçõe planare podem er repreentada com uma matri 22? Rotação 2D em torno de (,)? co* in * co in * + co* in in co 2
Matrie 22 Que tranformaçõe planare podem er repreentada com uma matri 22? Epelhamento 2D em torno de Y? Epelhamento 2D em torno de (,)? Matrie 22 Que tranformaçõe planare podem er repreentada com uma matri 22? Tranlação 2D? + t + t NÃO! 2
Coordenada Homogênea Como repreentar uma tranlação como matri 33? + t + t Coordenada Homogênea Coordenada homogênea repreentam coordenada em 2 dimenõe com vetor 3 coord. homogênea Coordenada Homogênea parecem pouco intuitiva, ma ela implificam muito a operaçõe gráfica 22
23 Coordenada Homogênea Como repreentar uma tranlação como matri 33? t t + + Rep: Uando a terceira coluna da matri t t Tranlação Tranlação Eemplo + + t t t t t 2 t Coordenada Homogênea
24 Coordenada Homogênea Coloca uma 3a coordenada para cada ponto 3D (,, w) repreenta um ponto em (/w, /w) (,, ) repreenta um ponto no infinito (,, ) não é permitido Sitema conveniente para repreentar muita tranformaçõe útei em CG 2 2 (2,,) or (4,2,2) or (6,3,3) Tranformaçõe 2D Báica Repreentação em matrie 33 co in in co t t h h Tranlação Rotação Cialhamento (Shear) Ecalamento
25 Cialhamento (Shear) h h + + * * γ + tan tan γ γ M. Gatta, PUC-Rio Concatenação de Tranformaçõe T R E R 2 T 2 P T 2 R 2 E R T P P T 2 R 2 E R T P M. Gatta, PUC-Rio
Compoição de Matrie Tranformaçõe podem er combina pela multiplicação de matrie w t co t in in co w p T(t,t ) R() S(, ) p Compoição de Matrie Atenção: ordem da tranformaçõe fa diferença Multiplicação de matrie não é comutativa p T * R * S * p Global Local 26
27 Ordem da Tranformaçõe p R 2 2 2 p T p R p 2 2 2 p T (a) (b) M. Gatta, PUC-Rio Ordem da Tranformaçõe E: rotacionar egmento em 45 grau em torno da etremidade a a a Reultado eperado
Ordem da Tranformaçõe Erro: aplicar a rotação de 45 o, R(45), afeta a dua etremidade Pode-e tentar faer a rotação e depoi retornar o ponto a à ua poição original, ma quanto ele preciaria er tranladado? a a Como traer o ponto a de volta à poição original??? Errado! R(45) a Correto T(-3) R(45) T(3) Ordem da Tranformaçõe Correto: iolar ponto a do efeito da rotação a. Tranladar a linha para colocar a na origem: T (-3) a 2. Rotacionar linha em 45 o : R(45) a 3. Tranladar a de volta: T(3) a 28
Compoição de Matrie T(3) R(45) T(-3) 3 co(45) in(45) in(45) co(45) 3 a a a a A multiplicação começa da última para a primeira tranformação Compoição de Matrie Depoi de ordenar a matrie corretamente: Multiplicá-la Guardar reultado em uma ó matri Uar ea matri para realiar a tranformação compota em cada um do ponto que definem o objeto tranformado (vértice, por eemplo) Todo o vértice podem er tranformado com uma imple multiplicação de vetor por matri. 29
Eercício 2D Conidere o triângulo com o eguinte vértice em coordenada homogênea Rotacione o triângulo de 9 o (entido antihorário) em relação ao ponto P (6,5) P C A B Etapa da Solução. Definir matri para tranladar o triângulo de modo que o centro de rotação e mova para a origem do itema de coordenada 2. Definir matri para rotacionar o triângulo 3. Definir matri para tranladar o triângulo de volta 4. Gerar matri combinada da tranformação 5. Tranformar o vértice do triângulo 3
Etapa da Solução. Definir matri para tranladar o triângulo de modo que o centro de rotação e mova para a origem do itema de coordenada Centro de rotação: P (6,5) Tranlação de -6 unidade em e -5 unidade em Etapa da Solução 2. Definir matri para rotacionar o triângulo O ângulo de rotação é medido no entido antihorário: R(+9 o ) co(9 o ) e in(9 o ) 3
Etapa da Solução 3. Definir matri para tranladar o triângulo de volta Tranlação de 6 unidade em e 5 unidade em Etapa da Solução 4. Gerar matri combinada da tranformação 32
33 Etapa da Solução 5. Tranformar o vértice do triângulo C B A P B A C Tranformaçõe em 3D Mema idéia que em 2D: Coordenada homogênea: (,,,w) Matrie de tranformação 44 w p o n m l k j i h g f e d c b a w
34 Tranformaçõe 3D Báica w w w t t t w w w Identidade Ecalamento Tranlação Tranformaçõe 3D Báica w w Epelhamento em torno do plano YZ w w Epelhamento em torno do plano XZ w w Epelhamento em torno do plano XY
35 Tranformaçõe 3D Báica w w co in in co Rotação em torno de Z: w w co in in co w w co in in co Rotação em torno de Y: Rotação em torno de X: Rotaçõe Revera Como defaer uma rotação R(θ)? Aplicar o invero da rotação: R(-θ) Contruindo R(-θ) : co(-θ) co(θ) in (-θ) - in (θ) Aim: R(-θ) R T (θ) co in in co co in in co T
Eercício 3D Encontre a repectiva matrie de tranformação para o eguinte cao a) Tranlação que leva o ponto p (a, b, c ) para o ponto p 2 (a 2, b 2, c 2 ) b) Ecalamento que leva o ponto p (a, b, c ) para o ponto p 2 (a 2, b 2, c 2 ) c) Rotação em torno do eio que leva o ponto p (a, b, c ) para o ponto p 2 (a 2, b 2, c 2 ) Qual o ângulo dea rotação? Solução a) Tranlação que leva o ponto p (a, b, c ) para o ponto p 2 (a 2, b 2, c 2 ) Matri de tranlação 36
Solução b) Ecalamento que leva o ponto p (a, b, c ) para o ponto p 2 (a 2, b 2, c 2 ) Matri de ecalamento Solução c) Rotação em torno do eio que leva o ponto p (a, b, c ) para o ponto p 2 (a 2, b 2, c 2 ) Para rotação em torno de : (2) (): 37
Solução c) Rotação em torno do eio que leva o ponto p (a, b, c ) para o ponto p 2 (a 2, b 2, c 2 ) Subtituindo em () ou (2): Matri de rotação Solução c) Rotação em torno do eio que leva o ponto p (a, b, c ) para o ponto p 2 (a 2, b 2, c 2 ) Qual o ângulo dea rotação? 38
39 Ângulo de Euler Fundamento da Comp. Gráfica Jona Gome, Lui Velho Ângulo de Euler + + c c c c c c c c c c c c c c θ θ θ M. Gatta, PUC-Rio Notação: c co(θ ); in(θ ) e aim por diante
θ 9 o θ 9 o θ 9 o θ 9 o Demo: Ângulo de Euler http://prt.fernuni-hagen.de/lehre/kurse/prt/coure_main/node.html 4
Bibliografia Adicional Peter Shirle, Fundamental of Computer Graphic, A K Peter, Ltd., Natick, MA, USA, 22. Fole, J. D., Van Dam, A., Feiner, S. K., e Huhe, J. F., Phlip, L. R., Introduction to Computer Graphic, Addion-Wele, 995. Fole, J. D., Van Dam, A., Feiner, S. K., e Huhe, J. F., Computer Graphic: Principle and Practice, (Stem Programming), 2nd edition in C, Addion- Wele, 995. The Annotated VRML 97 Reference: http://accad.ou.edu/~pgertma/cla/vnv/reource/info/ AnnotatedVrmlRef/Book.html 4