Transformaciones geométricas.
Habitualmente, un paquete gráfico permite al usuario especificar que parte de una imagen definida se debe visualizar y dónde esta parte se debe colocar en el dispositivo de visualización.
En el caso de las imágenes bidimensionales, una vista se selecciona especificando una región del plano x y que contiene la imagen total o cualquier parte de ella.
Las partes dentro de las zonas seleccionadas se mapean entonces sobre zonas especificadas de las coordenadas del dispositivo. Cuando se seleccionan múltiples zonas de vista, estas zonas se pueden colocar en ubicaciones de visualización independientes, o algunas zonas se podrían insertar en zonas de visualización más grandes.
Transformaciones bidimensionales
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, t x y t y a la posición de coordenadas original (x , y ) para mover el punto a una nueva posición (x’ ,y’ ).
La traslación es una transformación de cuerpo rígido que mueve objetos sin deformarlos, es decir, se traslada cada punto del objeto la misma distancia. 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.
Rotación
Se aplica una rotación bidimensional en un objeto al cambiar su posición a lo largo de la trayectoria de una circunferencia en el plano de x y . Para generar una rotación, especificamos un ángulo de rotación θ y la posición (x r , y r ) del punto de rotación (o punto pivote) en torno al cual se gira el objeto. Los valores positivos para el ángulo de rotación definen rotaciones en sentido opuesto a las manecillas del reloj alrededor del punto pivote y los valores negativos giran los objetos en la dirección del reloj .
Utilizando identidades trigonométricas podemos expresar las coordenadas transformadas en término de los ángulos θ y ϕ como:
x'=rcos(φ +θ )=rcos φ cosθ −rsin φsinθ
y'=rsin(φ +θ )=rcosφ sinθ −rsinφ cosθ
Las coordenadas originales del punto en las coordenadas polares son2.5.
x =r cosφ ,y=rsinθ
Al sustituir las expresiones 2.5 en 2.6, obtenemos las ecuaciones de transformación para girar un punto en la posición (x, y) s través de un ángulo Θ al rededor de un origen:
x'=xcosθ −ysinθ y=xsinθ +ycosθ
Sl igual que con las traslaciones, las rotaciones son transformaciones de cuerpos
rígidos que mueven los objetos sin deformarlos. Se giran a través del mismo ángulo todos
los puntos del objeto.
Las líneas curvas se giran al cambiar la posición de los puntos de definición y se
vuelven a trazar las curvas. Por ejemplo, se puede girar una circunferencia o una elipse
alrededor de un eje no central al mover la posición del centro a través del arco que
subtiende el ángulo de rotación específico. Es posible girar una elipse sobre sus
coordenadas de centro al girar los ejes mayor y menor.
Escalación
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’):
x ' = x·sx , y' = y·sy
Los objetos que se transforman se escalan y cambian de posición. Los factores de escalación con valores menores que 1 acercan los objetos al origen de las coordenadas en tanto que los valores mayores que 1 alejan las posiciones de coordenadas del origen.se escala un polígono con respecto del punto fijo al escalar la distancia de cada vértice al punto fijo. Para un vértice con coordenadas (x, y), se calculan las coordenadas escaladas (x’, y’) como
x ' = xf + (x − xf )sx , y' = yf + (y − yf )sy
Los objetos que se transforman con las ecuaciones 2.11 se escalan y cambian de posición. Los factores de escalación con valores menores que 1 acercan los objetos al origen de las coordenadas en tanto que los valores mayores que 1 alejan las posiciones de coordenadas del origen.
Podemos controlar la localización de un objetos escalado al seleccionar una posición llamada punto fijo, que debe permanecer sin cambios después de la transformación de escalación.
Se pueden seleccionar las coordenadas para el punto fijo (xf, yf) como uno de los vértices, el centroide del objeto o cualquier otra posición.
Podemos volver a expresar estas transformaciones de escalación para separar los términos de multiplicación y de adición donde los términos aditivos xf(1 - sx) y yf(1 - sy) son constantes para todos los puntos en el objeto
x ' = x·sx + xf (1− sx )
y' = y·sy + yf (1− sy )
Incluir coordenadas para un punto fijo en las ecuaciones de escalación es similar a incluir coordenadas para un punto pivote en las ecuaciones de rotación.
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.
Podemos combinar los términos de multiplicación y de adición para transformaciones geométricas bidimensionales en una sola representación de matriz al ampliar las representaciones de matriz de 2 por 2 a matrices de 3 por 3.
Esto nos permite expresar todas las ecuaciones de matriz como multiplicaciones de matriz , si también ampliamos las representaciones de matriz para las posiciones de coordenadas. Para expresar cualquier transformación bidimensional como una multiplicación de matriz, representamos cada posición de coordenadas cartesianas (x, y) con las tres coordenadas homogéneas (xh, yh, h), donde
x = xh /h,y = yh/ h
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 se aplican dos vectores de traslación sucesivos (tx1, ty1) y (tx2, ty2) en la posición de coordenadas P, la localización transformada final P, la localización transformada final P’ se calcula como:
P' = T (tx2 , ty2 )·{T (tx1, ty1)·P} = T (tx2 , ty2 )·T (tx1, ty1{ )}·P
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 { )·R(θ1)}·P
Al multiplicar las dos matrices de rotación, podemos verificar que dos rotaciones
sucesivas son aditivas:
R(θ2 )·R(θ1) = R(θ1 +θ2 )
de modo que es posible calcular las coordenadas giradas finales con la matriz de
rotación compuesta como
2.28. P' = R(θ1 +θ2 )·P
Escalaciones
Concatenar matrices de transformación para dos operaciones de escalación sucesivas produce la siguiente matriz de escalación compuesta:
S(sx2 , sy2 )·S(sx1, sy1) = S(sx1·sx2 , sy1·sy2 )
Rotación del punto 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óntraslació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.
Escalación del punto fijo general
Traslade el objeto de modo que el punto fijo coincida con el origen de las
coordenadas.Escale el objeto con respecto del origen de las coordenadas
3. Utilice la traslación inversa del paso 1 para regresar el objeto a su posición
original.
T (xf , yf )·S(sx , sy )·T (−xf ,−yf ) = S(xf , yf , sx , sy )
Esta transformación se genera de manera automática en sistemas que ofrecen una función de escalación que acepta las coordenadas para el punto fijo.
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 lelvar a cabo al multiplicar primero a por B o multiplicar primero B por C:
A·B·C = (A·B)·C = A·(B·C)
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.
Transformación ventana-área de vista
Si tenemos una ventana y un área de vista, ¿cuál es la matriz de transformación que establece la correspondencia entre las coordenadas mundiales de la ventana y las Como se puede ver, si la ventana y el área de vista no tienen la misma razón altura anchura, ocurre un escalamiento no uniforme. Si el programa de aplicación cambia la ventana o el área de vista, las nuevas primitivas de salida que se dibujen en la pantalla se verán afectadas por el cambio, no así las primitivas existentes.
El modificador coordenadas de mundo se emplea con ventana para subrayar que no se trata de una ventana de administrador de ventanas, un concepto distinto y más reciente que por desgracia tiene el mismo nombre. Este modificador se omitirá cuando no exista ninguna ambigüedad con respecto al tipo de ventana que se trate.
Si SRGP proporcionara primitivas de salida en coordenadas de mundo, el área de vista se hallaría en el lienzo actual, que por omisión es el lienzo 0, la pantalla. El programa de aplicación podría cambiar en cualquier instante la ventana o el área de vista, en cuyo caso las primitivas de salida que se especificaran subsecuentemente estarían sujetas a una nueva transformación. Si el cambio incluyera un área de vista distinta, las nuevas primitivasde salida se colocarían en el lienzo en posiciones distintas a las anteriores.
coordenadas de pantalla del área de vista? Esta matriz se puede desarrollar corno una composición de transformación de tres pasos
Transformaciones de composición general y de
eficiencia computacional
Una transformación bidimensional general, que representa una combinación de
traslaciones, rotaciones y escalaciones. 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. La propiedad ortogonal de las matrices de rotación es útil para realizar una matriz de rotación cuando conocemos la orientación final de un objeto en lugar de la cantidad de rotación angular necesaria para colocar el objeto en esa posición. Las direcciones para la orientación deseada de un objeto se podrían determinar mediante la alineación de ciertos objetos en escena o mediante posiciones seleccionadas en la escena.
Representación matricial de transformaciones
tridimensionales
Así como las transformaciones bidimensionales se pueden representar con matrices de 3 X 3 usando coordenadas homogéneas, las transformaciones tridimensionales se pueden representar con matrices de 4 X 4, siempre y cuando usemos representaciones de coordenadas homogéneas de los puntos en el espacio tridimensional. Así, en lugar de representar un punto como (x, y, z), lo hacemos como (x, y, z, W), donde dos de estos cuádruplos representan el mismo punto si uno es un multiplicador distinto de cero del otro:
no se permite el cuádruplo (0, 0, 0, 0). Como sucede en el espacio bidimensional, la representación estándar de un punto (x, y, z, W) con W ≠ 0 se indica (x/W, y/W, z/W, 1). La transformación de un punto a esta forma se denomina homogeneización, igual que antes. Además los puntos cuya coordenada W es cero se llaman puntos en el infinito. También existe una interpretación geométrica. Cada punto en el espacio tridimensional se representa con una línea que pasa por el origen en el espacio de cuatro dimensiones, y las representaciones homogeneizadas de estos puntos forman un subespacio tridimensional de
un espacio de cuatro dimensiones definido por la ecuación W = 1.
Composición de transformaciones
tridimensionales
En este apartado se analizará la forma de componer matrices de transformación
tridimensionales usando. Se presentan dos formas de lograr la transformación deseada. El primer método es componer las transformaciones primitivas T, Rx, Ry y Rz. Este método, aunque es algo tedioso, es fácil de ilustrar y su comprensión nos ayudará en nuestro conocimiento de las transformaciones. El segundo método, que utiliza las propiedades de las matrices ortogonales especiales que se analiza en la sección anterior, se explica de manera mas breve pero es más abstracto.En este caso, la transformación deseada se puede llevar a cabo en cuatro pasos:
1. Traslación de P1 al origen.
2. Rotación sobre el eje y para que P1P2 esté en el plano (y, z).
3. Rotación sobre el eje x para que P1P2 esté en el eje z.
4. Rotación sobre el eje z para que P1P3 esté en el plano (y, z).