Você está na página 1de 32

Transformaciones

Contenido
Sistemas de coordenadas Transformaciones en 2D Transformaciones en 3 dimensiones Composicin de transformaciones Rotacin alrededor de un pivot Rotacin alrededor de un eje
Agradecimientos: A Alex Garca-Alonso por facilitar el material para la realizacin de estas transparencias (http://www.sc.ehu.es/ccwgamoa/clases)

Sistemas de coordenadas
Un objeto se representa por polgonos Un polgono es una coleccin de vrtices y aristas Para transformar un objeto se transforman sus vrtices Del sistema local al sistema global: transformaciones

Transformaciones en 2D
Traslacin Escalado Rotacin Deformacin

2 dimensiones: traslacin

x y

= =

x y

+ +

tx ty

x y 1

1 0 0

0 1 0

tx ty 1

x y 1

2 dimensiones: escalado

x y

= =

sx x sy y

x y 1

sx 0 0

0 sy 0

0 0 1

x y 1

2 dimensiones: rotacin
x = r cos
y = r sen
y

P
x x

x = r cos ( + ) = = r (cos cos sen sin ) = = x cos y sen


P

y = r sen ( + ) = = r ( cos sen + sen cos ) = = x sin + y cos

2 dimensiones: rotacin
Representado matricialmente en coordenadas homogneas:

x y 1

cos -sin 0 sin cos 0 0 0 1

x y 1

2 dimensiones: deformacin (shear)


Deformacin de la coordenada x:

x y x y 1

= =

x y 1 0 0

+ hx y

hx 1 0

0 0 1

x y 1

Transformaciones en 3 dimensiones
La expresin general de una transformacin en tres dimensiones en coordenadas homogneas es:
x y z 1 a11 a21 a31 0 a12 a22 a32 0 a13 a23 a33 0 a14 a24 a34 1 x y z 1

Matriz de transformacin M44


Describe todas las transformaciones: traslacin, escalado, rotacin, deformacin. La composicin de transformaciones se realiza mediante el producto de matrices Se pueden obtener los valores de la transformacin a partir de la matriz: desplazamiento, escala y giro.

3D: Traslacin
x y z
x y z 1

= = =

x y z
1 0 0 0

+ + +
0 1 0 0

tx ty tz
0 0 1 0 tx ty tz 1 x y z 1

3D: Escalado
x y z = = = sx x sy y sz z

x y z 1

sx 0 0 0

0 sy 0 0

0 0 sz 0

0 0 0 1

x y z 1

3D: Escalado no homogneo


sx sy sz

3D: Rotacin

3D: Matrices de rotacin


x y z 1
x y z 1 x y z 1

1 0 0 0 cos -sin 0 sin cos 0 0 0


cos 0 -sin 0 0 sin 1 0 0 cos 0 0 0 0 1 0

0 0 0 1
0 0 0 1 0 0 0 1

x y z 1
x y z 1 x y z 1

Rotacin en x

Rotacin en y

cos -sin sin cos 0 0 0 0

Rotacin en z

Otras transformaciones
Oblicua en xy (z invariante) x y z 1 1 0 0 0 0 1 0 0 a b 1 0 0 0 0 1 x y z 1

Reflexin plano xy x y z 1 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 1 x y z 1

Composicin de transformaciones
Se pueden aplicar sucesivas transformaciones a un punto.
Al resultado de la primera transformacin:
M1 P

se aplica una segunda transformacin:


M2 [ M1 P] = [M2 M1 ] P

La composicin de transformaciones se realiza mediante el producto de matrices


M = Mn Mn-1 M2 M1

La composicin de transformaciones no es conmutativa

Estructura jerrquica
Un objeto se sita 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 composicin de transformaciones.

Rotacin alrededor de un pivot


Si el eje de rotacin no pasa por el origen, son necesarias las siguientes operaciones
Trasladar el punto de rotacin Q, al origen Realizar la rotacin Deshacer la traslacin

La composicin de transformaciones es:


MRQ () = M3 M2 M1 MRQ () = MT (qx, qy, qz) MR () MT (-qx, -qy, -qz)

El escalado se realiza anlogamente

Rotacin alrededor de un eje


El eje define por un punto Q y un vector unitario r. Se realiza una rotacin de un ngulo . y r R Se resuelve mediante composicin Q O de transformaciones
Se enuncian las transformaciones z Se determina el clculo de cada una de ellas Se explica como evaluar los ngulos requeridos

Rotacin alrededor de un eje: composicin de transformaciones


Posicin inicial y r R Q z x Traslacin QO y M1 R z Q x Rotacin en z M2 Q Rotacin en x y R x M3 y R Q M4 x Rotacin en y

Rotacin - en x y R Q x M5 y

Rotacin - en z R Q M6 x z

y R Q

Traslacin -QO M7 x z

Posicin inicial y r R Q x

Rotacin alrededor de un eje: relacin de transformaciones


La matriz de transformacin es:
M(Q,r) () = M7 M6 M5 M4 M3 M2 M1 M1 : traslacin QO M2 : rotacin en z M3 : rotacin en x M4 : rotacin en y M5 : rotacin - en x M6 : rotacin - en z M7 : traslacin -QO

Rotacin alrededor de un eje: M1 - traslacin QO


Sea R tal que OR = OQ + r La traslacin que lleva Q al origen es:
M1 = MT (-qx, -qy, -qz)
y y M1 x z Q R x

r R Q
O z

rxy

R R

Rotacin alrededor de un eje: M2 - rotacin en z


Calcular el ngulo entre los planos YZ y el plano definido por el eje z y OR
rxy es la proyeccin 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
y
R rxy

M2 es la matriz de rotacin alrededor del eje z:


M2 = MRz ()
z

Rotacin alrededor de un eje: M3 - rotacin en x


Aplicando M2 a R se obtiene R
R est en el plano YZ r lo define OR
y R R Q z x

Calcular el ngulo entre r y j

tener en cuenta el sentido de giro positivo i

M3 es la matriz de rotacin alrededor del eje x:


M3 = MRx ()

Rotacin alrededor de un eje: M4 - rotacin en y


Aplicando 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 rotacin alrededor del eje y:


M4 = MRy ()
y R Q

Rotacin alrededor de un eje: M5, M6, M7 - inversas


Una vez calculado el giro alrededor del eje transformado, habr que invertir el proceso de transformacin y para ello se calculan las matrices inversas
M5 = MRx (-) M6 = MRz (-) M7 = MT(qx, qy, qz)

La matriz de transformacin compuesta es: M(Q,r) () = M7 M6 M5 M4 M3 M2 M1

Rotacin alrededor de un eje: r y ngulo


Clculo del ngulo
rxy es la proyeccin 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 z Como cos = cos () , entonces
si rx < 0 entonces el ngulo debe ser (2- r) xy =-

xy

Q y

j
z

rxy
x

= acos ( ry / (rx2 + ry2 )1/2 ) y si rx < 0 = -

Rotacin alrededor de un eje: ngulo


Clculo del ngulo
y

R y r estn en el plano YZ R R cos = j r / | r| = = ( (0, 1, 0) (0, ry, rz) ) / (ry2 + rz2 )1/2 Q 2 2 1/2 cos = ry / (ry + rz ) z Como cos = cos () , entonces y
si rz > 0 entonces el ngulo debe ser (2- ) =- r j x

= acos ( ry / (ry2 + rz2 )1/2 ) y si rz > 0 = -

Você também pode gostar