1 Transformaciones
2 Contenido Sistemas de coordenadas Transformaciones en 2DTransformaciones en 3 dimensiones Composición de transformaciones Rotación alrededor de un pivot Rotación alrededor de un eje Agradecimientos: A Alex García-Alonso por facilitar el material para la realización de estas transparencias (http://www.sc.ehu.es/ccwgamoa/clases)
3 Sistemas de coordenadasUn objeto se representa por polígonos Un polígono es una colección de vértices y aristas Para transformar un objeto se transforman sus vértices Del sistema local al sistema global: transformaciones
4 Transformaciones en 2D Traslación Escalado Rotación Deformación
5 2 dimensiones: traslaciónx´ = x + tx y´ = y + ty x´ 1 0 tx x y´ 0 1 ty y
6 2 dimensiones: escaladox´ = sx ·x y´ = sy ·y x´ sx x y´ 0 sy y
7 2 dimensiones: rotaciónx = r cos y = r sen x’ = r cos ( + ) = = r (cos cos – sen sin ) = = x cos – y sen y’ = r sen ( + ) = = r ( cos sen + sen cos ) = = x sin + y cos P’ y’ r y P x’ x
8 2 dimensiones: rotaciónRepresentado matricialmente en coordenadas homogéneas: x´ cos β -sin β x y´ sin β cos β 0 y
9 2 dimensiones: deformación (shear)Deformación de la coordenada x: x´ = x + hx ·y y´ = y x´ 1 hx 0 x y´ y
10 Transformaciones en 3 dimensionesLa expresión general de una transformación en tres dimensiones en coordenadas homogéneas es: x´ a11 a12 a13 a14 x y´ a21 a22 a23 a24 y z´ a31 a32 a33 a34 z
11 Matriz de transformación M44Describe todas las transformaciones: traslación, escalado, rotación, deformación. La composición de transformaciones se realiza mediante el producto de matrices Se pueden obtener los valores de la transformación a partir de la matriz: desplazamiento, escala y giro.
12 3D: Traslación x´ = x + tx y´ = y + ty z´ = z + tz x´ 1 0 0 tx xy´ ty y z´ tz z
13 3D: Escalado x´ = sx ·x y´ = sy ·y z´ = sz ·z x´ sx 0 0 0 x
14 3D: Escalado no homogéneosx sy sz
15 3D: Rotación
16 3D: Matrices de rotaciónx´ x y´ 0 cos θ -sin θ 0 y z´ 0 sin θ cos θ 0 z Rotación en x x´ cos θ 0 sin θ 0 x y´ y z´ -sin θ 0 cos θ 0 z Rotación en y x´ cos θ -sin θ 0 0 x y´ sin θ cos θ 0 0 y z´ z Rotación en z
17 Otras transformacionesOblicua en xy (z invariante) x´ 1 0 a 0 x y´ 0 1 b 0 y z´ z Reflexión plano xy x´ x y´ y z´ z
18 Composición de transformacionesSe pueden aplicar sucesivas transformaciones a un punto. Al resultado de la primera transformación: M1 · P se aplica una segunda transformación: M2 ·[ M1 · P] = [M2 · M1 ] · P La composición de transformaciones se realiza mediante el producto de matrices M = Mn ·Mn-1 ·… ·M2 · M1
19 La composición de transfor-maciones no es conmutativa
20 Estructura jerárquicaUn objeto se sitúa respecto a su sistema de coordenadas. Todo el conjunto se puede situar en un sistema de coordenadas distinto y así sucesivamente. Las coordenadas en el sistema final se obtienen por composición de transformaciones.
21 Rotación alrededor de un pivotSi el eje de rotación no pasa por el origen, son necesarias las siguientes operaciones Trasladar el punto de rotación Q, al origen Realizar la rotación Deshacer la traslación La composición de transformaciones es: MRQ (θ) = M3 · M2 · M1 MRQ (θ) = MT (qx, qy, qz) ·MR (θ) · MT (-qx, -qy, -qz) El escalado se realiza análogamente
22 Rotación alrededor de un ejeEl eje define por un punto “Q” y un vector unitario “r”. Se realiza una rotación de un ángulo θ. Se resuelve mediante composición de transformaciones Se enuncian las transformaciones Se determina el cálculo de cada una de ellas Se explica como evaluar los ángulos requeridos x y z θ Q R O r
23 Rotación alrededor de un eje: composición de transformacionesinicial Traslación QO Rotación en z Rotación β en x Rotación θ en y x y z Q R r x y z Q’ R’ x y z Q’ R´´ x y z Q’ R´´´ M1 M2 M3 M4 Rotación -β en x Rotación - en z Traslación -QO Posición inicial x y z Q’ R´´´ x y z Q’ R´´ x y z Q’ R’ x y z Q R r M7 M5 M6
24 Rotación alrededor de un eje: relación de transformacionesLa matriz de transformación es: M(Q,r) (θ) = M7 · M6 · M5 · M4 · M3 · M2 · M1 M1 : traslación QO M2 : rotación en z M3 : rotación en x M4 : rotación en y M5 : rotación - en x M6 : rotación - en z M7 : traslación -QO
25 Rotación alrededor de un eje: M1 - traslación QOSea R tal que OR = OQ + r La traslación que lleva Q al origen es: M1 = MT (-qx, -qy, -qz) x y z θ Q R O r x y z Q’ R’ M1
26 R´´ x y rxy z Q’ R’ α
27 Rotación alrededor de un eje: M2 - rotación en zCalcular el ángulo entre los planos YZ y el plano definido por el eje z y OR’ rxy es la proyección ortogonal de r sobre XY R’’ es el resultado del giro alrededor de z es el ángulo entre rxy y j (vector unitario de y) tener en cuenta el sentido de giro positivo k M2 es la matriz de rotación alrededor del eje z: M2 = MRz () R´´ x y rxy z Q’ R’ α
28 Rotación alrededor de un eje: M3 - rotación β en xy z Q’ R´´´ R´´ β Aplicando M2 a R’ se obtiene R’’ R’’ está en el plano YZ r’’ lo define OR’’ Calcular el ángulo β entre r’’ y j tener en cuenta el sentido de giro positivo i M3 es la matriz de rotación alrededor del eje x: M3 = MRx (β)
29 Rotación alrededor de un eje: M4 - rotación θ en yAplicando M3 a R’’ se obtiene R’’’ R’’’ está en el eje y Se realiza el giro θ en el eje y M4 es la matriz de rotación alrededor del eje y: M4 = MRy (θ) x y z Q’ R´´´
30 Rotación alrededor de un eje: M5, M6, M7 - inversasUna vez calculado el giro θ alrededor del eje transformado, habrá que invertir el proceso de transformación y para ello se calculan las matrices inversas M5 = MRx (-β) M6 = MRz (-) M7 = MT(qx, qy, qz) La matriz de transformación compuesta es: M(Q,r) (θ) = M7 · M6 · M5 · M4 · M3 · M2 · M1
31 Rotación alrededor de un eje: ángulo x y rxy z Q’ R’ α Cálculo del ángulo rxy es la proyección ortogonal de r sobre el plano XY: (rx, ry, 0) cos = j · rxy / | rxy | = = ( (0, 1, 0) · (rx, ry, 0) ) / (rx2 + ry2 )1/2 cos = ry / (rx2 + ry2 )1/2 Como cos = cos (–) , entonces si rx < 0 entonces el ángulo debe ser (2- ) = - α y z x rxy j = acos ( ry / (rx2 + ry2 )1/2 ) y si rx < 0 = -
32 Rotación alrededor de un eje: ángulo βCálculo del ángulo β R’’ y r’’ están en el plano YZ cos β = j · r´´ / | r´´| = = ( (0, 1, 0) · (0, ry´´, rz´´) ) / (ry´´2 + rz´´2 )1/2 cos β = ry´´ / (ry´´2 + rz´´2 )1/2 Como cos β = cos (–β) , entonces si rz ´´ > 0 entonces el ángulo debe ser (2- β) β = - β x y z Q’ R´´´ R´´ β β r´´ j z x y β = acos ( ry´´ / (ry´´2 + rz´´2 )1/2 ) y si rz´´ > 0 β = - β