Sitio Web de Héctor E. Medellín Anaya

Transformaciones en 2D

Traslación

Las coordenadas (x, y) de un objeto se transforman a (x', y') de acuerdo a las fórmulas:

El par (Tx, Ty) se conoce como vector de traslación.

Escalamiento

El escalamiento modifica el tamaño de un polígono. Para obtener este efecto, se multiplica cada par coordenado (x, y) por un factor de escala en la dirección x y en la dirección y para obtener el par (x', y'). Las fórmulas son

Rotación

La rotación gira los puntos de una figura alrededor de un punto fijo.

De la figura se obtiene

Simplificando

Corte

El corte produce una deformación similar al deslizamiento de una capa sobre otra. El corte en x se produce por la siguiente fórmula:

Similarmente el corte en y se obtiene con:

Las transformaciones pueden implementarse mediante el uso de matrices. Esto requiere que las coordenadas de los puntos se representen como coordenadas homogéneas, las cuales incluyen una tercer componente que en este caso supondremos con valor 1. Es decir, el punto (x, y) se representa mediante (x, y, 1). Esto permite expresar la operación de traslación en forma matricial.

Las matrices correspondientes a las diferentes transformaciones básicoas son:

 

El siguiente Applet permite aplicar estas transformaciones a objetos en dos dimensiones. El applet tiene tres botones:

"Matriz de transformación"  - despliega en el área de texto la matriz de transformación aplicada en la última operación.

"Matriz inversa" -  despliega en el área de texto la matriz inversa de transformación correspondiente a la última transformación aplicada.

"Ejecutar secuencia" - aplica la secuencia de operaciones especificadas en el área de texto al objeto en pantalla.

Las operaciones permitidas son:

R(ang) - rotación, ej.: r(30)
S(sx,sy) - escalamiento, ej.: S(1.5,2.0)
T(tx,ty) - traslación, ej.: T(1.5,2.3)
C(shx) - corte en x, ej.: C(1.5)
D(shy) - corte en y, ej.: D(-1.2)
M(a11,a12,a13,a21,a22,a23,a31,a32,a33) - aplica la matriz de transformación especificada. Note que para combinaciones de las transformaciones básicas a13 y a23, son siempre 0. Ej.: M(0,1,0,1,0,0,0,0,1)

El texto después de una línea que inicie con F es ignorado. Asegúrese de escribir correctamente las transformaciones. Los íconos de la parte inferior permiten elegir 4 objetos distintos. Arrastre con el botón izquierdo del mouse para mover el origen de coordenadas y con el botón derecho para expandir o contraer en x o y.