TRA NSFORMACIO N ES LIN EA LES II C o m p uta c i ó n G r á fica Rotaciones Transformación lineal que preserva producto punto entre vectores. Transforma bases de mano derecha a bases de mano derecha. En 3D, cada rotación fija un eje de rotación y rota por un ángulo alrededor de ese eje. Vemos el caso 2D. Consideramo un vector: ~v = h b~1 i x b~2 y t ~ Suponemos que b es una base ortonormal de mano derecha en 2D. v, ✓ grados en sentido anti-horario alrededor del origen. Supongamos que queremos rotar ~ Las coordenadas ⇥ x 0 y 0 ⇤t del vector rotado se pueden calcular: 0 x = x cos ✓ y sin ✓ 0 y = x sin ✓ + y cos ✓ S.J. Gortler. Foundations of 3D Computer Graphics. MIT Press. 2012. COMPUTACIÓN GRÁFICA | TRANSFORMACIONES LINEALES II | ENERO-JUNIO 2015 | 11/02/2015 Rotaciones: 2D Que se puede escribir: h b~1 i x b~2 y ) h ) h b~1 i cos ✓ b~2 sin ✓ sin ✓ cos ✓ b~1 i cos ✓ b~2 sin ✓ sin ✓ cos ✓ x y También podemos rotar una base: h b~1 b~2 i S.J. Gortler. Foundations of 3D Computer Graphics. MIT Press. 2012. COMPUTACIÓN GRÁFICA | TRANSFORMACIONES LINEALES II | ENERO-JUNIO 2015 | 11/02/2015 Rotaciones: 3D Usando un sistema coordenado de mano derecha, una rotación de un vector por θ grados alrededor del eje z de la base se expresa: 2 3 h i x h b~1 b~2 b~3 4 y 5 ) b~1 z b~2 b~3 i 2 cos ✓ 4 sin ✓ 0 sin ✓ cos ✓ 0 32 0 x 0 54 y 5 1 z Una rotación de un vector por θ grados alrededor del eje x de la base se expresa: h b~1 b~2 b~3 i 2 3 x h 4 y 5 ) b~1 z b~2 b~3 i 2 1 0 4 0 cos ✓ 0 sin ✓ 3 32 3 0 x sin ✓ 5 4 y 5 cos ✓ z S.J. Gortler. Foundations of 3D Computer Graphics. MIT Press. 2012. COMPUTACIÓN GRÁFICA | TRANSFORMACIONES LINEALES II | ENERO-JUNIO 2015 | 11/02/2015 Rotaciones: 3D Una rotación de un vector por θ grados alrededor del eje y de la base se expresa: h b~1 b~2 b~3 i 2 3 x h 4 y 5 ) b~1 z b~2 b~3 i 2 cos ✓ 4 0 sin ✓ 0 1 0 32 3 sin ✓ x 0 54 y 5 cos ✓ z La composición de rotaciones resulta en otra rotación. Podemos tener una rotación arbitraria aplicando una rotación alrededor del eje-x, seguida de una alrededor del eje-y y luego una alrededor del eje-z. Las cantidades angulares de las tres rotaciones se conocen como ángulos de Euler xyz. (roll-pitch-yaw) S.J. Gortler. Foundations of 3D Computer Graphics. MIT Press. 2012. COMPUTACIÓN GRÁFICA | TRANSFORMACIONES LINEALES II | ENERO-JUNIO 2015 | 11/02/2015 Matrices de rotación R Matrices cuadradas, con elementos reales. T -1 Matrices ortogonales: R = R y det R =1. Si incluimos aquellas cuyo det R = -1 incluimos también las reflexiones. El conjunto de las matrices de tamaño n con det R = +1 forman un grupo llamado ortogonal especial SO(n). En 3D es SO(3). ortogonal especial (1) Vectores renglón unitarios (2) Vectores renglón perpendiculares entre si (producto punto es cero) (3) Los vectores columna también verifican las propiedades (1) y (2). S.J. Gortler. Foundations of 3D Computer Graphics. MIT Press. 2012. COMPUTACIÓN GRÁFICA | TRANSFORMACIONES LINEALES II | ENERO-JUNIO 2015 | 11/02/2015 Ax is-a ngle Otra forma de representar una rotación arbitraria es tomar un vector unitario ~k como eje de rotación y aplicar directamente una rotación de θ radianes alrededor de éste. ~k = 2 2 kx v ⇥ +c ~k = 4 ky kx v + kz s kz kx v ky s kx ky ⇤t kz k x ky v kz s 2 ky v + c kz ky v + kx s c := cos ✓ s := sin ✓ 3 kx kz v + ky s ky k z v k x s 5 2 kz v + c v := 1 c S.J. Gortler. Foundations of 3D Computer Graphics. MIT Press. 2012. COMPUTACIÓN GRÁFICA | TRANSFORMACIONES LINEALES II | ENERO-JUNIO 2015 | 11/02/2015 Rotaciones Dos rotaciones alrededor de ejes diferentes no conmutan entre sí. Cuando componemos dos rotaciones alrededor de dos ejes diferentes tenemos una rotación alrededor de un tercer eje. Diferentes parametrizaciones de rotaciones: Matrices de rotación Axis-angle Ángulos de Euler Cuaternios Mapa exponencial S.J. Gortler. Foundations of 3D Computer Graphics. MIT Press. 2012. COMPUTACIÓN GRÁFICA | TRANSFORMACIONES LINEALES II | ENERO-JUNIO 2015 | 11/02/2015 Esca la m ientos Para escalar un vector por un factor s podemos usar: ~v = h b~1 b~2 b~3 i 2 3 x h 4 y 5 ) b~1 z b~2 b~3 i 2 sx 4 0 0 32 0 sy 0 3 0 x 0 54 y 5 sz z sx = sy = sz : escalamiento uniforme. sx ≠ sy ≠ sz : escalamiento diferencial. S.J. Gortler. Foundations of 3D Computer Graphics. MIT Press. 2012. COMPUTACIÓN GRÁFICA | TRANSFORMACIONES LINEALES II | ENERO-JUNIO 2015 | 11/02/2015 Ciza lla m iento (Shea r) Para cizallar un vector alrededor del eje-z: ~v = h b~1 b~2 b~3 2 3 x h 4 y 5 ) b~1 z i b~2 b~3 i 2 1 4 0 0 32 0 1 0 a x b 54 y 5 1 z http://140.129.20.249/~jmchen/cg/docs/rendering%20pipeline/rendering/transforms.html COMPUTACIÓN GRÁFICA | TRANSFORMACIONES LINEALES II | ENERO-JUNIO 2015 3 | 11/02/2015 Tra nsformaciones Linea les De cuerpos rígidos: secuencia arbitraria de translaciones y rotaciones. preservan paralelismo, ángulos y longitudes. Afines: secuencia arbitraria de rotaciones, translaciones, escalamientos y cizallamientos (shear). preserva paralelismo. COMPUTACIÓN GRÁFICA | TRANSFORMACIONES LINEALES II | ENERO-JUNIO 2015 | 11/02/2015 Coordenadas Homogéneas Coordenadas homogéneas o coordenadas proyectivas. Introducidas por August Ferdinand Möbius en 1827. Sistema de coordenadas utilizado en geometría proyectiva, como las coordenadas cartesianas se usan en geometría Euclideana. En CG permiten que las operaciones como translación, rotación, escalamiento, proyecciones perspectivas se implementen con matrices. COMPUTACIÓN GRÁFICA | TRANSFORMACIONES LINEALES II | ENERO-JUNIO 2015 | 11/02/2015 Features of the Beamer Class ⇥ dx 2 P = T + P, donde P y P son puntos en R y T = . dy ⇥ sx 0 2 ⇤ ⌅ P = S · P, donde P ydP son puntos en R y S = . x 0 sy 2 P = T + P, donde P y P son puntos en R y T = . dy 2 y P = R · P, donde P y P son puntos en R Permiten tratar a las transformaciones de ⇤ ⇥ ⌅ s 0 cos sin x 2 Features manera consistente. P of = Sthe · P,Beamer donde P yClass P son puntos . R =en R y S = . sin cos 0 sy (x, yen , WR)2con =⇤R · P, donde P y⌅tripletas P son puntos y W ⇥= 0. Un punto seP representa con W P cos sin que son múltiplos entre si. . R= sin cos ⇤ ⌅ dx 2 (tx, ty , tW ) con t = ⇥ 0. P = T +⇥P, donde P y P son puntos en R y T = . dy y x ⇤ ⌅ W , W , 1 con W ⇥= 0. plano W=1 que es una línea en un espacio 3D. sx 0 2 P = S · P, donde P y P son puntos en R y S = . 0 sy Coordenadas Homogéneas Coordenadas cartesianas del punto P =⇤R · P, donde P y⌅ P son puntos en R2 y homogéneo: cos sin R= (x, y, 0) ? . sin cos ⇥ y x W , W , 1 con W ⇥= 0. y puntos al infinito en dirección (x, y). 13 x Coordenadas homogéneas Al menos una de las coordenadas homogéneas debe ser diferente a cero. Si la coordenada W es diferente a cero podemos dividir entre ella: (x,y,W) representa el mismo punto que (x/W, y/W, 1). Cuando W es diferente a cero hacemos esta división y los números x/W, y/ W se llaman coordenadas Cartesianas del punto homogéneo. Los puntos con W=0 se llaman puntos en el infinito. COMPUTACIÓN GRÁFICA | TRANSFORMACIONES LINEALES II | ENERO-JUNIO 2015 | 11/02/2015 sx 0 P = S · P, donde P y P son puntos en yS= . 2 P = S · P, donde P y P son puntos en 0 Rsy y S = R2 2 y P =⇤R · P, donde P y P son puntos en R Translación en donde coordenadas P y⌅ P son puntos en P =⇤R⌅· P, cos sin cos sin R= . R . sin cos=homogéneas sin cos (x, y , 0) con t ⇥= 0. (x, y , 0) con t ⇥= 0. ⇥ y x ⇥ , , 1 con W = ⇥ 0. y x W W 0. ⌃ W , W , 1 con W ⇥= ⇧ 1 0 dx ⇧ 1 P = T (dx , dy ) · P con T (dx , dy ) = ⌥ 0 1 dy .⌥ P = T (dx , dy ) · P con T (dx , dy ) = 0 Features Features of the Beamer Class 0 0 1 of the Beamer Class 0 Features of the Beamer Class sx 0 R2 y ⌃ 0 dx 1 dy . 0 1 ⇧ ⌃ 1 0 dx P = T (dx1 x2 , dy1 y2 ) · P con T (dx , dy ) = ⌥ 0 1 dy . 0 0 1 T (dx1 x2 , dy1 yT2 )(d= T ,(ddx2 , d)y2=) ·TT(d (dx1, ,ddy1))· T (d , d ) T (dx1 x2 , dxy1 x1 y2 2⇥) y=1 y2T (dx2 , dyx2 2) ·⇥Ty2(dx1 , dyx1 1) y1 1 0 dx2 1 0 1⇥d 0 ⇥dx1 1 0 ⇥d ⇥ x2 1 0 d x1 1 0 d x x dy2⇤ ⌅0· ⇤12 0 d 1 ⌅d·y1⇤ ⌅0 11 d ⌅ =⇤ 0 1 = ⇤ 0 1 dy2 ⌅ y· 2⇤ 0 1 dy1 ⌅ y1 = 0 0 1 0 0 0 10 1 0 0 1 0 0 1 0 0 1 ⇥ 1 0 dx1 +1dx20 dx +⇥dx ⇥ 1 2 1 0 d + d x x 1 2 ⌅ ⇤ dy1⇤+0dy21 d. y + dy ⌅ . = 0 1 = ⇤ 0 1 dy1 + d1y2 ⌅ . 2 = 0 0 10 0 1 0 0 1 COMPUTACIÓN GRÁFICA | TRANSFORMACIONES LINEALES II | ENERO-JUNIO 2015 | 11/02/2015 0 sy . Escalamiento en coordenadas homogéneas Escalamiento Escalamiento Escalamiento Escalamiento P = S(sx , Escalamiento sy ) · P con S(sx , sy ) = ⇤ ⇥ sx 0 0 0 sy 0 ⌅. ⇥ sx ⇥0 0 0 0 1 0 ⌅. P = S(sx , sy ) · P con S(sx , sys)x = 0⇤ 00 sy ⇥ 1 0 d ⇤ ⌅ 0 sy 00 0. xsx 1 0 P = S(sx , sy ) · P con S(sx , sy ) = ⇤ ⌅ ⇤ 0 1 d P = T (dx1 x2 , dy1 y2 )P· P=con (d , d ) = .sy 0 S(sT , s ) · P con S(s , s ) = y x x y y 1 2 0 x 0y 1 x y 1 2 sx 0 P = S(sx1 x2 , sy1 y2 ) · P 0 0 ⇤ 10 0 0 sy P =2 )S(s , sy ) · P con S(sx , sy ) = P = S(s , s · P x x x y y 1 2 1 T (d , d ) = T (d , d ) · T (d , d ). x x y y x y x y 1 2 1 2 2 2 1 1 T (dxy11,yd2 y)1·).P T (dx1 x2 , dy1 y2 ) = T (d Px2 ,=dyS(s 2 ) ·x⇥ 0 0 ⇥ 1 x2 , s S(sx1 x2 , sy1⇥y2 )1= 0S(sdx2 , sy2 ) ⇥ · S(s , s ). x1 0 y1d 1 x x1 2d ⇥ ⇥ 1 0 dx2 1 0 S(sx=1 x2S(s , syx1⌅ S(s , sy2 ) ·⌅S(sx1 , sy1 ). xy1x2 ), = P s ) · x2P y y 1 2 1 2 ⇤ ⇤ 1 =0⌅ d0⇤ d0x1⇥ 1 dy1 · x2 1 dy21 0 ⇥ ⇤ ⌅ = 0 1⇤ dy2 · 0⌅ s1⇤ dy01 0 ⌅ s 0 x1 0, sy1 ). , s ) = S(s , s x1 x21) · S(s 2 0 1 d = 0 1 d0yS(s · x x y y x y 0 0 0 1 1 2 1 2 2 y 2 1 0 0 1 0 0 1 ⇥ ⇥ ⇤ ⌅ ⇤ ⌅ ⇥ 0 s 0 0 s 0 = · y y 2 1 0 0 11 ⇥ 0+0d 0 01 sx1 0 0 0 sdx2x1⇥ x 2 1 0 dx1 + dx= 0 0 1 0 0 1 ⇤ ⌅ ⇤ ⌅ 2 0 s 0 0 s 0 · ⌅ ⇤ x = y : escalamiento uniforme. y y 1 0 d + d 1 1 xd2y1 + d2 y2 . ⇥ = 0x1 ⌅ ⇤ = 0 1⇤ dy1 + dy2 . 10 ⌅ 0 1 x ≠ y : escalamiento diferencial. = 0 1 d0y1 + 0 dy2 01.0dx1 1+ dx2 0 0 0 1 = ⇤ 0 1 d + d ⌅. ⇥ 0 0 1 sx1 · sx2 y1 0 y2 0 0 ⌅. s1 ·s = ⇤ 0 00 y2 y1 0 COMPUTACIÓN GRÁFICA | TRANSFORMACIONES LINEALES II 0 | 1 ENERO-JUNIO 2015 | 11/02/2015 ⇥ 0 ⇥ ⌅. 0 0 01 ⌅. 1 Rotación en coordenadas homogéneas Rotación Alrededor del origen. Rotación cos P = R( ) · P con R( ) = ⇤ sin 0 sin cos 0 P = S(sx1 x2 , sy1 y2 ) · P ⇥ 0 0 ⌅. 1 S(sx1 x2 , sy1 y2 ) = S(sx2 , sy2 ) · S(sx1 , sy1 ). ⇥ ⇥ ⇥ cos sin 0sx2 0 0 sx1 0 0 cos= ⇤ 00⌅. sy2 0 ⌅ · ⇤ 0 sy1 0 ⌅ P = R( ) · P con R( ) = ⇤ sin 0 0 10 0 1 0 0 1 ⇥ P = S(sx1 x2 , sy1 y2 ) · P sx1 · sx2 0 0 0 sy1 · sy2 0 ⌅ . S(sx1 x2 , sy1 y2 ) = S(sx2 , sy2 ) · S(sx1 , sy1 ). = ⇤ ⇥ ⇥ 0 0 1 sx2 0 0 sx1 0 0 (1) Vectores renglón unitarios = ⇤ 0 sy2 0 ⌅ · ⇤ 0 sy1 0 ⌅ (2) Vectores renglón perpendiculares entre si (producto punto es cero) 0 0 1 0 0 1 ⇥ (3) El primer y segundo vector al rotarse por R(θ) estarán en el eje-x sx1 · sx2 0 0 positivo y eje-y positivo respectivamente. 0 sy1 · sy2 0 ⌅ . =⇤ 0 0 1 (4) Los vectores columna también verifican las propiedades (1) y (2). ortogonal especial COMPUTACIÓN GRÁFICA | TRANSFORMACIONES LINEALES II | ENERO-JUNIO 2015 | 11/02/2015 Shear en coordenadas homogéneas Shear Shear Alrededor del eje-x. ⇥ 1 a 0 P = SHx · P con SHx = ⇤ 0 1 0 ⌅. 0 0 1 ⇥ 1 a 0 P = S(sx1 x2 , sy1 y2 ) · P P = SHx · P con SHx = ⇤ 0 1 0 ⌅. S(sx1 x2 , sy1 y2 ) = S(sx2 , sy2 ) · S(sx01 , s0y1 ).1 ⇥ ⇥ ⇥ sx1 0 0 ⇥ sx2 0 0 x ⇤ x + ay ⌅ ⇤ ⌅ 0 sy2 ⇤ 0 ·⌅ 0⇤ sy1 0 ⌅ = y P = SHx · y = 0 0 1 0 0 1 1 ⇥ 1 sx1 · sx2 0 0 0 sy1 · sy2 0 ⌅ . =⇤ 0 0 1 COMPUTACIÓN GRÁFICA | TRANSFORMACIONES LINEALES II | ENERO-JUNIO 2015 | 11/02/2015 ⇥ Shear Alrededor del eje-y. 1 a 0 P = SHx · P con SHx = ⇤ 0 1 0 ⌅. 0 0 1 ⇥ Shear en coordenadas homogéneas ⇥ 1⇥ a 0 x x + ⇤ay ⌅. 0 1 0 P = SHx⇤· P con SH = x ⌅ y P = SHx · y ⌅ = ⇤ 0 0 1 1 ⇥ 1 ⇥ ⇥ x x + ay 1 0 0 ⌅ P = SHx · ⇤ y ⌅ = ⇤ ⇤ y P = SHy · P con SHy = b 1 0 ⌅. 1 1 0 0 1 ⇥ ⇥ 1⇥ 0 0 x x + ⇤ay ⌅. b 1 0 P = SHy⇤· P con SH = y ⌅ y P = SHy · y ⌅ = ⇤ 0 0 1 1 ⇥ 1 ⇥ x x P = SHy · ⇤ y ⌅ = ⇤ bx + y ⌅ 1 1 COMPUTACIÓN GRÁFICA | TRANSFORMACIONES LINEALES II | ENERO-JUNIO 2015 | 11/02/2015 Coordenadas Homogéneas http://en.wikipedia.org/wiki/Affine_transformation COMPUTACIÓN GRÁFICA | TRANSFORMACIONES LINEALES II | ENERO-JUNIO 2015 | 11/02/2015 Transformaciones en 3D Transformaciones en 2D ➔ matrices 3x3 con coordenadas homogéneas. Transformaciones en 3D ➔ matrices 4x4 con coordenadas homogéneas. (x,y,W) ➔ (x,y,z,W) (x/W, y/W, z/W, 1) con W≠0. Sistema coordenado con la mano derecha. y x z 21 eje de rotación dirección positiva de la rotación x yaz y zax z xay Translación 3D Tra nsformaciones en 3D Translación 3D ⇥⇥ 11 00 00 ddx Simple extensión de translación en 2D. ⇧⇧0 1 0 dy x ⌃⌃ ⌃ 0 1 0 d TT(d(dx , d, dy , d, dz ) )==⇧ . y ⇧ ⌃ ⇤⇤0 0 1 dz ⌅⌅. x y z Translación 3D 0 0 1 dz 00 00 00 11 Translación 3D Translación: ⇥⇥ ⇥⇥ ⇥⇥ xx x x++ddx 11 00 00 ddx x x ⇧ ⌃ ⇧ ⌃ ⇧⇧ 0 1 0 dy ⌃⌃ y y + d y ⇧ ⌃ ⇧ ⌃ ⇧ ⇧ ⌃ ⌃ y y + d ⇧ ⌃ 0 1 0 d T (d , d , d ) · = y y TT(d .. x ,d y ,d z ) ·⇤⇧ ⌅⌃ =⇤⇧ ⌃ ⌃ ⌅ T (d (dx x, ,ddy y, ,ddz z))==⇤⇧ ⌅ z + d z x y z ⇤ z ⌅ ⇤ z + dz z ⌅ ⇤ 00 00 11 ddz z ⌅ 11 11 00 00 00 11 ⇥ ⇥ ⇥ ⇥ 1 0 d x sx 0 0 0 x x + dx ⇤ ⌅ 0 1 d P = T (dx1 x2 , d⇧ ) · P con T (d , d ) = . ⇧ 0 sy 0 0 ⌃ y y1 yy x x y y ⌃ ⇧ ⌃ 2 1 2 1 2 y + d y ⇧ ⌃ ⌃=⇧ ⌃ S(s , s , s ) = . T (dx , dy , dz ) · ⇧ x y z 0 0 1 ⇤ ⌅ ⇤ z ⌅ ⇤ z + dz ⌅ 0 0 sy 0 Escalamiento: T (dx1 x2 , dy1 y2 ) = T1(dx2 , dy2 ) · T1(dx1 , dy1 ). 0 0 0 1 ⇥ ⇥⇥ ⇥ ⇥ 1 0 dx2 x sx · x sx 10 0 0 dx10 ⌅ ·0⇤ 0s 1 0 dy10 ⌅⌃ ⇧ y ⌃ ⇧ sy · y ⌃ = ⇤ 0 1 dy2 ⇧ y ⇧ ⌃ ⇧ ⌃ ⌃. S(s , s , s ) · = S(sx0, sy 0, sz ) 1= ⇧ x y z ⇤ z ⌅ ⇤ sz · z ⌅ ⇤ 0 00 0 sy 1 0 ⌅ ⇥ 1 1 1 0 dx1 + d0x2 0 0 1 ⇥⌅ ⇥ ⇤ = 0 1 dy1 + dxy2 . x + dx 0 0 1COMPUTACIÓN ⇧ ⌃ ⇧ GRÁFICA |⌃TRANSFORMACIONES LINEALES II | ENERO-JUNIO 2015 | 11/02/2015 y y + d y ⇧ ⌃ ⇧ ⌃ y Alrededor del eje-z Rotación 3D cos sin 0 ⇧ sin cos 0 ⇧ Rz ( ) = ⇤ 0 0 1 0 0 0 cos sin 0 Rotación 3D ⇧ sin cos 0 ⇧ Rz ( ) = ⇤ 0 0 1 Alrededor del eje-x 0 0 0 cos sin 0 1 0 cos 0 0 ⇧ sin Rz ( ) = ⇧ ⇧ 0 cos sin 1 ⇤ 0 0 ⇧ Rx ( ) = ⇤ 0 0 sin 0 cos 0 0 0 0 1 0 0 ⇧ 0 cos sin ⇧ Rx ( ) = ⇤ sin cos Alrededor del0eje-y 0 0 0 cos ⇧ 0 ⇧ Ry ( ) = ⇤ sin 0 0 sin 1 0 0 cos 0 0 0 0 0 1 0 0 0 1 0 00 00 10 1 0 0 0 1 ⇥ x ⌃ ⌃. ⌅ z ⇥ ⌃ ⌃. ⌅ ⇥ ⇥ ⌃ ⌃ ⌃. ⌅ ⌃. ⌅ y x ⇥ z ⌃ ⌃. ⌅ y ⇥ 0 0 ⌃ ⌃. 0 ⌅ 1 x z 23 Rotaciones en 3D Los renglones y columas de la submatriz superior izquierda de 3x3 de Rz(θ), Rx(θ) y Ry(θ) son: vectores unitarios mutuamente perpendiculares. la submatriz tiene determinante 1. ortogonales especiales. Una secuencia arbitraria de rotaciones y translaciones en 3D preserva ángulos, longitudes y paralelismo. COMPUTACIÓN GRÁFICA | TRANSFORMACIONES LINEALES II | ENERO-JUNIO 2015 | 11/02/2015 Inversa de tra nsformaciones en 3D Rotación 3D Todas las matrices de transformación tienen inversas. cos ⇧ sin Rz ( ) = ⇧ ⇤ 0 0 La inversa de T se obtiene negando dx, dy, y dz. 1 0 ⇧ 0 cos Rx ( ) = ⇧ ⇤ 0 sin 0 0 La inversa de S se obtiene reemplazando sx, sy, y sz por su recíproco. cos ⇧ 0 ⇧ Ry ( ) = ⇤ sin 0 La inversa de las tres rotaciones se obtiene negando el ángulo de rotación. La inversa de cualquier matriz ortogonal B es la transpuesta de B: COMPUTACIÓN GRÁFICA | TRANSFORMACIONES LINEALES II | ENERO-JUNIO 2015 | 11/02/2015 B 1 = BT sin cos 0 0 0 s co 0 0 si 1 0 co 0 Com posición de tra nsformaciones Cualquier secuencia de transformaciones de rotación, escalamiento y translación se pueden multiplicar. El resultado es de la forma: rotación y escalamiento ⇥ r11 r12 r13 tx ⇧ r21 r22 r23 ty ⌃ ⌃. M=⇧ ⇤ r31 r32 r33 tz ⌅ 0 0 0 1 translación COMPUTACIÓN GRÁFICA | TRANSFORMACIONES LINEALES II | ENERO-JUNIO 2015 | 11/02/2015 Rotación Toto a lrededor de un punto a rb itra rio P Toto y Toto ⇥ 1 0 x1 T (x1 , y1 ) = ⇤ 0 1 y1 ⌅. 0y 0 1 Toto R( ) 1 Toto ⇥ 1 0 x1 y T (x1 , y1 ) =y ⇤ 0 1 y1 ⌅. ⇥ 0 0 1 1 0 x1 Toto T ( x1 , y1 ) R( ) ⇤ 0 1 y1 ⌅. T (x , y ) = 1 1 ⇥ ⇥ ⇥ 1 0 01 0 x1 1 0 0 0 0 1 ⇤ ⌅ P1 P⇥ ⌅ 0 1 y Ty (x )= . ⇤ ⌅ 1 ⇥ 1 1 ,⇤y1b 1 P = SHy · P con SH = . b 1 0 P = SH · P con SH = . y y ⇥ x x + ay 1 0 x 1 1 0 x1 0 0 10 0 1 0 0 1 ⇤ ⌅ ⇤ y y P = SH · = ⇤ ⌅ θ x 0 1 y T (x , y ) = . x x ⇥ x ⇥ ⇥ 1 1 1 ⇤ ⌅ ⇥ T (x1 , y1 ) = 0 1 y1 .Px1 R( ) x P1 x x 1 1 casa original 0 0 1 0 0 1 P = SHy · ⇤ y ⌅ =T⇤( bx x1+ , yyP1⌅)= SHy · ⇤ y ⌅ = ⇤ bx + y ⌅ 1 R( ) R( ) 1 T (x1 , y11 ) · R(⇥ ) · T ( x11, y1 ) = P 1⇥= SHy · P con SH⇥y = ⇤ b T ( x1 , y1 ) T ( x1 , y1 ) 1 0 x1 cos sin 0 1 0 x1 0 y1 )1· R(y⇥1 )⌅· T x1 , y1 )cos = ⌅ · ⇤ 0 1 ⇥y⇥1 ⌅ = 0 · ⇤( sin T (x1 , y1 ) · R(⇥ ) · T ( x1 , y1 ) T =(x⇤1 ,0⇥ ⇥ ⇥ xx x 1 0 x cos sin 0 1 0 1 0 x1 cos sin 0 0 0 1 11 0 x1 0 0 ⇤0 1 ⌅ 1 ⇤ 0 1 y bx + y P = SH · = ⇥ y ⇤ ⌅ ⇤ ⌅ ⇤ ⌅ 00 cos 1 ·⇤ y1 0 ·sin cos y1 ⇤ 0 1 y1 ⌅ · ⇤ sin ⌅ ⌅= cos 1 sinyx11 (1 cos ) 0+ y1· sin 0 1 1 1 0 0 1 0 0 1 0 0 1 ⇤1 sin 0 cos 0 1y1 (1 cos ) x1 sin ⌅. 0 0 1 0 0 ⇥ ⇥ cos sin x1 (1 cos ) + y1cos sin 0 0 sin x1 (1 cos 1) + y1 sin ⇤ sin cos y1 (1 cos )= ⇤x1sin sin ⌅.cos y1 (1 cos ) x1 sin ⌅. 0 0 1 0 0 1 COMPUTACIÓN GRÁFICA | TRANSFORMACIONES LINEALES II | ENERO-JUNIO 2015 | 11/02/2015 ⇥ ⌅ x ⇥ 0 0 1 0 ⌅. 0 1 ⇥ ⌅ Toto Esca la m iento a lrededor de u n Toto punto a rb itra rio P ⇥ 1 1 0 x1 Toto ⇥ T (x1 , y1 ) = ⇤ 0 1 y1 ⌅. 1 0 x1 Toto 0 0 1 ⇤ ⌅ T (x1 , y1 ) = y y Toto P1 R( ) y Toto 0 1 y1 0 0 1 . y ⇥ 1 0 x1 ⇥ ⇤ 0 1 y1 ⌅. T ( x1 , y1 ) S(sx , sy ) T (x , y ) = 1 1 1 0 x 1 ⇥ ⌅. 0 0 1 1 ((x01x,1y,01 ) y=1 )⇤ 0 1 y1 ⇥ T ⇥ ⇥ ⇤ ⌅ b (x11 , y01 ) · R( P = SH . )10· T0( xx111 , y1 ) = 1 y ·0P xcon x x + ay 1 SHy = T ⇥ ⇥ ⇥ ⇤ ⌅ 0 1 y T (x , y ) = . ⇤ ⌅ 0 1x01, s0y11) x1 T (x1 , y1 ) = 0 1 y1 . P = SH S(s cos 1 sin 0 x · ⇤ y1 ⌅0= ⇤ x1 y ⇥ ⇥ 0⇤ 0sin 1 cos ⌅ 0 0 x1 1 0 1 y 0 ⌅ · ⇤ 10 1 y1 ⌅ · x⇤ T ( x1 , y11 ) , s0y ) 1 0 0 1 0 0 0 1 x⌅ y S(sx , sy )P = SHy · ⇤ y ⌅ = ⇤ bx +S(s 1 T (x1 , y1 ) · S(sx , sy ) · T ( x1 , y1 ) ⇥ ⇥ ⇥ ⇥ 1 1T ( xcos ⇤ b 1 , y1 ) sin P = SH · P con SH = x (1 cos ) + y sin T ( x1 , y1 ) 1 1 y y 1 0 x1 sx 0 0 1 0 x1 ⇤ ⌅ (1 cos ) x sin sin cos y = 0 T (x , y ) · S(s , s ) · T ( x , y 1 1 ⇤ ⌅ ⇤ ⌅ ⇤ ⌅ 1 · T (x1 , y1 ) · S(sx , sy ) · T ( x1 , y1 ) = 1 0 1 1 y1 x ⇥ y· 0 sy1 0 ⇥ 0 1 ⇥ .y1 ⇥ ⇥ ⇥ ⇥ 0 0 1 1 0 x s 0 0 10 0x 1x1 x 0 1 0 1 x 1 0 x1 sx 0 0 1 0 x1 1 ⇥s P 0 =⌅SH ⇤ ⌅ ⇤ ⇤ ⌅ ⇤ ⌅ ⇤ 0 1 y 0 0 1 y = · · y bx + y · = ⇤ ⌅ ⇤ ⌅ ⇤ ⌅ 1 y 1 y 0 sy 0 · 0 1sx 0y1 x1 (1 sx ) = 0 1 y1 · 0 01 1 1 ⌅0. 1 0 0 1 0 0 1 =0⇤ 000 0s1y 1 y1 (1 s0y ) ⇥ ⇥ s0x 0 x1 (1 1 sx ) sx 0 x1 (1 sx ) ⇤ ⌅ 0 s y (1 s ) = . ⇤ ⌅ y 1 y 0 sy y1 (1 sy ) . = 0 0 1 0 0 1 x P1 x P1 x x P1 casa original COMPUTACIÓN GRÁFICA | TRANSFORMACIONES LINEALES II | ENERO-JUNIO 2015 | 11/02/2015 ⇥ ⌅ ⇥ 0 0 1 0 ⌅. 0 1 ⇥ ⌅ Ejercicio Encuentra las matrices de transformación para transformar el objeto (1) al objeto (2) (1) COMPUTACIÓN GRÁFICA (2) | TRANSFORMACIONES LINEALES II | http://www2.it.lut.fi/kurssit/08-09/CT20A5700/exercises/05/ ENERO-JUNIO 2015 | 11/02/2015 Ejercicio Encuentra las matrices de transformación para transformar el objeto (1) al objeto (2) (1) COMPUTACIÓN GRÁFICA (2) | TRANSFORMACIONES LINEALES II | http://www2.it.lut.fi/kurssit/08-09/CT20A5700/exercises/05/ ENERO-JUNIO 2015 | 11/02/2015
© Copyright 2024