1. Transformaciones Geométricas
Introducción
Las transformaciones geométricas modifican la posición y orientación de los objetos y el observador en la
escena. Transformaciones como la traslación, rotación y escalado permiten simular el movimiento de los
objetos, así como situar los objetos y el observador en la posición adecuada. Las transformaciones geométricas
permiten cambiar la posición, orientación y tamaño de los objetos.
Una transformación geométrica es una función matemática que transforma un punto o conjunto de
puntos en otro punto o conjunto de puntos, dentro del sistema de referencia global de la escena. Las tres
transformaciones básicas son la traslación, la rotación y el escalado. A partir de estas transformaciones pueden
construirse otras nuevas. Las transformaciones 3D son una generalización de las 2D.
Transformaciones 2D
Translación: Esta operación consiste en modificar la posición de un punto en el plano definido por las
coordenadas (x, y), mediante un movimiento en línea recta desde la posición actual (posición inicial) a la
posición final. La traslación no modifica la geometría del objeto, sólo su posición en el espacio. Esta operación
consiste en sumar a las coordenadas de cada punto, los valores de los desplazamientos en las direcciones x e y.
Formula general: P’=P+T
Formula implementada: x’ = x + dx
y’ = y + dy
A los valores dx y dy se les denomina distancias de traslación. Estas distancias son números reales positivos o negativos.
x' 1 0 dx x
Formula matricial: P' y ' 0 1 dy y
1 0 0 1 1
2. Escalamiento: La operación de escalado modifica la distancia de los puntos sobre los que se aplica, respecto a
un punto de referencia. Para definir esta operación son necesarios dos factores de escala, Sx y Sy, según las
direcciones x e y, y un punto o eje de referencia.
Formula general: P’=P x S
Formula implementada: x’ = x * dx
y’ = y * dy
x' s x 0 0 x
Formula matricial: P' y ' 0
sy 0 y
1 0
0 1 1
donde sx representa el factor de escalamiento en x y sy el factor de escalamiento en y.
Rotación: La operación de rotación o giro desplaza un punto a través de la circunferencia definida sobre un
centro determinado, es decir, siguiendo un movimiento circular. Igual que en la traslación, esta operación no
modifica la geometría del objeto, sólo su posición.
Formula general: P’ = R * P
Formula implementada: x’ = x * cosϴ - y * senϴ
y’ = x * senϴ + y * cosϴ
x' cos sin 0 x
Formula matricial: P' y ' sin
cos 0 y
1 0
0 1 1
3. Coordenadas homogéneas
Las representaciones matriciales estudiadas son: La traslación se contempla de forma diferente al resto. Para
tratar del mismo modo las tres transformaciones, los puntos se expresarán en coordenadas homogéneas, en lugar
de las coordenadas cartesianas.
En la representación de coordenadas homogéneas, se añade una tercera componente para cada punto. En
lugar de representar un punto con un par de números (x, y), se representa mediante la terna (x, y, W). Se dice
que dos conjuntos de coordenadas representan el mismo punto si y sólo si uno es múltiplo de otro. Esta
situación conduciría a toda una teoría relacionada con la representación en el espacio 3D que queda al margen
del objetivo del curso. Para esto, W siempre valdrá la unidad. El uso de coordenadas homogéneas permite
representar todas las transformaciones geométricas uniformemente como productos de matrices.
Ventajas de las coordenadas homogéneas: Facilitan las operaciones de concatenación de transformaciones,
mediante el producto de matrices. Las tarjetas aceleradoras de gráficos implementan en hardware las
operaciones matriciales con coordenadas homogéneas, mejorando el rendimiento de estas operaciones. Si las
operaciones se realizasen por software requerirían un gran poder de cómputo.
Transformación ventana-área de vista
Consideremos que tenemos una ventana del mundo real cuyos límites son {x_min, x_max, y_min, y_max}
Deseamos mapear a coordenadas de pantalla con límites {u_min, u_max, v_min, v_max}. Para tal propósito
debemos :
1.- Trasladar las coordenadas mínimas al origen T(-x_min, -y_min),
2.- Aplicar un escalamiento anisotrópico dado por S((u_max-u_min)/(x_max-x_min), (v_max-v_min)/(y_max-
y_min)) y
3.- Trasladar las coordenadas a un nuevo origen u_min, v_min T(u_min, v_min)
Estos pasos dan la siguiente transformación
u _ max u _ min
0 0
1 0 u _ min x _ max x _ min 1 0 x _ min
v _ max v _ min
M 0 1 v _ min .
0 0.0 1 y _ min
y _ max y _ min
0 0
1 0 0 1
0 0 1
4. Al multiplicar P = M[x,y,1]T se obtiene
u _ max u _ min v _ max v _ min
P ( x x _ min). u _ min, ( y y _ min) v _ min,1
x _ max x _ min y _ max y _ min
Transformaciones 3D
La translación, escalamiento y rotación en tres dimensiones, son simplemente una extensión de la que se lleva a
cabo en dos dimensiones. Desde este punto de vista podemos representar:
Translación
1 0 0 dx
0 1 0 dy
T (dx, dy, dz )
0 0 1 dz
0 0 0 1
Escalamiento
sx 0 0 0
0 sy 0 0
S ( sx, sy, sz)
0 0 sy 0
0 0 0 1
Rotación
Podemos componer rotaciones tridimensionales a partir de las tres matrices de rotación bidimensional sobre
cada uno de los ejes x, y, y z.
cos sin 0 0
sin cos 0 0
Rz ( )
0 0 1 0
0 0 0 1
1 0 0 0
0 cos sin 0
Rx ( )
0 sin cos 0
0 0 0 1
5. cos 0 sin 0
0 1 0 0
Ry ( )
sin 0 cos 0
0 0 0 1
Composición de transformaciones 2D y 3D
Combinar una serie de operaciones básicas, para generar una operación compleja que involucre cambios de
posición, orientación y escala simultáneos sobre un objeto. Esta concatenación se realiza mediante un producto
de matrices, cada una de las cuales es la matriz de definición de la correspondiente operación básica.
Ejemplo