UNIDAD_2

TRANSFORMACIONES GEOMÉTRICAS

Introducción

Las transformaciones geométricas son la o las operaciones geométricas que permiten crear una nueva figura a partir de una previamente dada. la nueva figura se llamará “homólogo” de la original.las transformaciones se clasifican en:



Directa: el homólogo conserva el sentido del original en el plano cartesiano.

Inversa: el sentido del homólogo y del original son contrarios además, también se pueden clasificar de acuerdo con la forma del homólogo con respecto al original en:

Isométricas: el homólogo conserva las dimensiones y ángulos. También se llaman “movimientos”, éstos son simetría axial y puntual, rotación y translación.

Isomórficas: el homólogo conserva la forma y los ángulos, existe proporcionalidad entre las dimensiones del homólogo con el original, una de ellas es la homotecia.

Anamórficas: cambia la forma de la figura original. Una de ellas es la inversión (no la trataremos).


2.1 Transformaciones Bidimensionales

Los procedimientos para desplegar dispositivos de salida y sus atributos, se puede crear una variedad de formas de figuras y graficas. En muchas aplicaciones, también hay una necesidad de alterar o manipular despliegues. Algunas veces se necesita reducir el tamaño de un objeto o grafica para colocarlo en un despliegue mayor. También podría desearse probar la apariencia de modelos de diseño reacomodando las posiciones relativas y los tamaños también relativos de las partes del modelo. En aplicaciones de animación, se necesita producir movimiento continuo de objetos desplegados alrededor de la pantalla. Estas diversas manipulaciones se llevan a cabo aplicando transformaciones geométricas adecuadas a los puntos coordenados de despliegue.



2.1.1 Traslación

Se aplica una traslación en un objeto para cambiar su posición a lo largo de la trayectoria de una línea recta de una dirección de coordenadas a otra. Convertimos un punto bidimensional al agregar las distancias de traslación, tx y ty la posición de coordenadas original (x, y).

El par de distancia de traslación se llama vector de traslación o vector de cambio. Se pueden expresar las ecuaciones anteriores en una sola ecuación matricial al utilizar vectores de columna para representar las posiciones de coordenadas y el vector de traslación.
Los polígonos se trasladan al sumar el vector de traslación a la posición de coordenadas de cada vértice y se vuelve a generar el polígono utilizando un nuevo conjunto de coordenadas y vértices y las especificaciones actuales de los atributos.
 
Una traslación es el movimiento en línea recta de un objeto de una posición a otra. Se traslada un punto de la posición coordenada (x, y) a una nueva posición (x’, y’) agregando distancias de traslación, Tx y Ty, a las coordenadas originales: x’ = x + Tx, y’ = y + Ty El par de distancia de traslación (Tx, Ty) se denomina también vector de traslación o bien vector de cambio. Los polígonos se trasladan agregando las distancias de traslación especificadas a las coordenadas de cada punto extremo de la línea en el objeto.

Los objetos trazados con curvas se trasladan cambiando las coordenadas definidoras del objeto. Para cambiar la posición de una circunferencia o elipse, se trasladan las coordenadas centrales y se vuelve a trazar la figura en la nueva localidad.
Las distancias de traslación pueden especificarse como cualquier número real (positivo, negativo o cero). Si un objeto se traslada mas allá de los límites del despliegue en coordenadas del dispositivo, el sistema podría retornar un mensaje de error, suprimir partes del objeto que sobrepasan los límites del despliegue o presentar una imagen distorsionada. 


2.1.2 Rotación
Rotación:
Para rotar un objeto (en este caso bidimensional), se ha de determinar la cantidad de grados en la que ha de rotarse la figura. Para ello, y sin ningún tipo de variación sobre la figura, la cantidad de ángulo ha de ser constante sobre todos los puntos.

Otra forma de conseguir la rotación, respecto a un punto de movimiento, es fijar los diferentes puntos respecto a un punto de fijación siendo los puntos que forman la figura, relativos a este.
La fórmula a aplicar en este último supuesto, sería la siguiente:
X' = X * Cos (àngulo) - Y * Sin(ángulo)
 Y' = Y * Cos (ángulo) - X * Sin(ángulo)
Ejemplo:
 


2.1.3 Escalación

Una transformación para alterar el tamaño de un objeto se denomina escalación.

Dependiendo del factor de escalación el objeto sufrirá un cambio en su tamaño pasando a ser mayor, o menor en su segmento de longitud.
Esta es la transformación del objeto especialmente interesante, pues con ella se consigue el efecto Zoom.
 
 

2.2 Coordenadas Homogéneas y Representación Matricial

En las aplicaciones de diseño y de creación de imágenes, realizamos traslaciones, rotaciones y escalaciones para ajustar los componentes de la imagen en sus posiciones apropiadas. En este tema consideramos cómo se pueden volver a formular las representaciones de la matriz de modo que se pueden procesar de manera eficiente esas secuencias de transformación. Es posible expresar cada una de las transformaciones básicas en la forma de matriz general con las posiciones de coordenadas P y P’ representadas como columnas de vector.2.15.P'=M1·P+M

Usualmente se requiere hacer varias transformaciones, como una escala seguida de una rotación. Si se requiere rotar un objeto alrededor de su propio centro, primero hay que trasladarlo al origen, luego rotarlo y finalmente regresarlo a su posición inicial. Conviene pues conocer las transformaciones inversas.

Forma matricial Multiplicación de matrices con matrices y con vectores, matriz idéntica o identidad, traspuesta, inversa.

 
2.3 Composición de Transformaciones Bidimensionales

Con las representaciones de matriz del tema anterior, podemos establecer una matriz para cualquier secuencia de transformaciones como una matriz de transformación compuesta al calcular el producto de la matriz de las transformaciones individuales. La creación de productos de matrices de transformación a menudo se conoce como concatenación o composición de matrices.

Traslaciones, rotaciones y escalaciones Traslaciones Se aplican dos vectores de traslación sucesivos (tx1, t y1) y (tx2 , t  y2 ) en la posición de coordenadas P, la localización transformada final P, la localización transformada final P’ se calcula como:2.23.P'=T(t x2,t2)·T(tx1,ty1)·P}{=T(tx2, 2)·T(t x1,t y1)}{·P

Donde se representan P y P’ como vectores de columna de coordenadas homogéneas. Podemos verificar este resultado al calcular el producto de la matriz para las dos agrupaciones asociativas. Asimismo, la matriz de transformación compuesta para esta secuencia de transformaciones.


Rotaciones

Dos rotaciones sucesivas que se aplican en el punto P producen la posición transformada 2.26.P'=R (θ2) ·R (θ1) {·P}=R (θ2) {· (θ1)} ·P

Al multiplicar las dos matrices de rotación, podemos verificar que dos rotaciones sucesivas son aditivas.
 
  

2.3.1 Translaciones, Rotaciones y Escalaciones

La composición de transformaciones bidimensionales consiste en la mezcla de las transformaciones bidimensionales básicas como son traslación, sesgado y escalado.
Notemos que no mencionamos la rotación como una transformación básica, esta es en realidad la combinación de escalado y sesgado.

 

Estas transformaciones se representan mediante un matriz de tres por tres como esta en la siguiente figura. Los elementos a, b, c, d, tx y ty.  Las posiciones adicionales u, v y w no las tomaremos en cuenta porque por el momento no son importantes.


El significado para cada posición es la siguiente 
a:  escalado en el eje x.
b: sesgado en el eje y.
c: sesgado en el eje x.
d: escalado en el eje y.
tx: traslación en el eje x
ty: traslación en el eje y 
Para aplicar alguna(s) de las transformaciones a un punto se necesita resolver la siguiente formula donde x y y representa la posición original del punto, x’ y y’ representan la nueva posición, los valores restantes representan los datos para realizar la transformación requerida.
X' = x*a + y*c + tx
y' = x*b + y*d + ty
Para aplicar la rotación nuestra matriz quedara de la siguiente forma donde ángulo representa los grados a girar la imagen.


Notar que la rotación se realiza con referencia al punto de origen, en caso de que se quiera rotar una imagen sobre sí misma, es necesario moverla al origen, rotarla y regresarla a su punto original.
Ahora estas operaciones no las tenemos que llevar a cabo manualmente ya que existe un objeto llamado matrix el cual tiene implementada las funciones de escalado, sesgado,  traslado y rotado 
Al momento de crear el objeto matrix deberemos pasarle como parámetros los valores a, b, c, d, tx y ty; en caso de no pasarle los valores la matrix que se utilizara será una matrix identidad.

2.3.2 Rotación de Punto de Pivote General
Con un paquete gráfico que sólo ofrezca una función de rotación para girar objetos con respecto del origen de las coordenadas, podemos generar casi cualquier punto pivote seleccionado (xr, yr)  al realizar la siguiente secuencia de operaciones de traslación-rotación-traslación:

1. Traslade el objeto de modo que se mueva la posición del punto pivote al origen de las coordenadas.
2. Gire el objeto con respecto del origen de las coordenadas
 

 
Con un paquete de gráficas que sólo ofrece una función de rotación para girar objetos con respecto del origen de coordenadas, podemos generar casi cualquier punto pivote seleccionado (xr, yr) al realizar la siguiente secuencia de operaciones de traslación-rotación-traslación:
1. Traslade el objeto de modo que se mueva la posición de punto pivote al origen de las coordenadas.
2. Gire el objeto con respecto del origen de las coordenadas.
3. Traslade el objeto de manera que se regrese el punto pivote a su posición original.

 
2.3.3 Escalación de Punto Fijo General
En la siguiente figura ilustra una secuencia de transformación para producir escalación con respecto de una posición fija seleccionada (xf, f) al utilizar una función de escalación que sólo puede escalar en relación con el origen de las coordenadas.

 

Una transformación de escalación altera el tamaño de un objeto. Se puede realizar esta operación para polígonos al multiplicar los valores de coordenadas (x, y) de cada vértice por los factores de escalación sx y sy para producir las coordenadas transformadas (x’, y').

El factor de escalación sx escala objetos en la dirección de x, mientras que el factor de escalación sy lo hace en la dirección de y.
Cuando se asignan el mismo valor a sx y sy' se general una escala uniforme. Y cuando se asignan valores distintos a sx y sy se obtiene una escala diferencial.


Podemos encontrar la localización de un objeto escalonado al seleccionar una posición llamada punto fijo, que debe permanecer sin cambio después de la transformación de escalación.


2.3.4 Propiedades de Concatenación
La multiplicación de matrices es asociativa. Para tres matrices cualesquiera A, B y C, el producto matricial A·B·C se puede llevar a cabo al multiplicar primero a por B o multiplicar primero B por C: 2.35.A · BC=(A· B) ·C =A· (B·C)
Por tanto, podemos evaluar los productos matriciales al utilizar una agrupación asociativa ya sea de izquierda a derecha o de derecha a izquierda. Por otro lado, los productos de la transformación tal vez no sean conmutativos. En general el producto matricial A·B no es igual que B·A. Esto significa queremos trasladar y girar un objeto, debemos tener cuidado sobre el sentido en que se evalúa la matriz compuesta.
 

La operación por la cual dos caracteres se unen para formar una cadena de caracteres (o string). También se puede concatenar dos cadenas de caracteres o un carácter con una cadena para formar una cadena de mayor tamaño.

2.4 Transformaciones Ventana - Área de Vista 
El modelo del mundo que se quiere representar almacena los objetos expresados usando un sistema de coordenadas reales llamado sistema de coordenadas del mundo, en el que los objetos se expresan en cualquier unidad que tenga significado la aplicación.
La aplicación dibuja los objetos en un sistema de coordenadas enteras, llamado sistema de coordenadas de dispositivo. Es necesario hacer una correspondencia que transforme coordenadas de un sistema en otro y viceversa. Lo que hacemos es expresar una ventana en coordenadas del mundo, en un puerto de visión expresado en coordenadas de dispositivo. La pantalla viene definida por un sistema de coordenadas enteras (píxeles).
 
Estos cálculos de transformación de ventana en puerta de visión pueden expresarse de la siguiente forma:
Incluyen factores de escalación y traslación.
Algunos paquetes gráficos permiten que el programador especifique coordenadas de primitivas de salida en un sistema de coordenadas de mundo de punto flotante, usando las

unidades que sean relevantes para el programa de aplicación: angstroms, micras, metros, millas, etc.




Se emplea el término de mundo porque el programa de aplicación representa un mundo que se crea o presenta interactivamente para el usuario:


Como las primitivas de salida se expresan en coordenadas de mundo, hay que indicar al paquete de subrutinas gráficas cómo establecer la correspondencia entre las coordenadas de mundo y las coordenadas de pantalla (usaremos el término específico coordenadas de pantalla para relacionar este análisis específicamente con SRGP, pero podrían usarse dispositivos de impresión, en cuyo caso sería más apropiado el término coordenadas de dispositivo).


2.5 Transformaciones  de la Composición General y de Eficiencia Computacional
Una transformación bidimensional general, que representa una combinación de traslaciones, rotaciones y escalaciones. Solo necesitamos efectuar cuatro multiplicaciones y cuatro adiciones para transformar las posiciones de las coordenadas. Este es el número máximo de cálculos que se requieren para cualquier secuencia de transformación, una vez que se han concatenado las matrices individuales y evaluadas los elementos de la matriz compuesta. Sin concatenación, se aplicarían las transformaciones individuales una a la vez y se podría reducir en forma considerable el número de cálculos. De esta manera, una implementación eficiente de las operaciones de transformación consiste en formular matrices de transformación, concatenar cualquier secuencia de transformación y calcular las coordenadas transformadas.

Una transformación bidimensional general, que representa una combinación de traslaciones, rotaciones y escalaciones se puede expresar como Los cuatro elementos rs ij son los términos multiplicativos de rotación - escalación en la transformación que implican sólo ángulos de rotación y factores de escalación. 




No hay comentarios:

Publicar un comentario