Transformaciones Geométricas.
Objetivo. El estudiante conocerá y aplicará las principales transformaciones geométricas sobre objetos en 2D y 3D.
Las transformaciones de visualización bidimensional desde las coordenadas universales a las coordenadas del dispositivo implican operaciones de traslación, rotación y cambio de escala, así como procedimientos de borrado de aquellas partes de la imagen que se encuentran fuera de los límites de una zona seleccionada de la escena.
2.1.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, tx y ty ( vector de traslación o vector de cambio). Es decir, representar las posiciones de coordenadas y el vector de traslación como:
Esto nos permite expresar las dos ecuaciones de traslación bidimensional en la forma de matriz:
En términos de vectores de renglón de coordenadas como: P[x y] y T[tx ty].
- Los polígonos se trasladan a un nuevo conjunto de coordenadas y vértices; y las especificaciones actuales de los atributos.
Ejemplo:
con respecto de cualquier posición de rotación específica (xr’, yr):
EscalaciónUna 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
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 dirección de y.
Se pueden asignar valores numéricos positivos y negativos a los factores de
escalación sx y sy. Los valores menos que 1 reducen el tamaño de los objetos y los valores mayores que 1 producen una ampliación.
Cuando se asigna el mismo valor a s para sy genera una escalación uniforme que mantiene las proporciones relativas de los objetos. Y cuando sx tienen valores distintos se obtiene una escalación diferencia como la de la ys, por ejemplo:

También 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. Por ejemplo:
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
2.2.Coordenadas homogéneas y representación matricial.
Con el fin de producir una
secuencia de transformaciones con estas ecuaciones, como escalación seguida por
rotación y luego traslación, debemos calcular las coordenadas transformadas un
paso a la vez. Primero, se escalan las posiciones de coordenadas, después se
giran estas coordenadas escaladas y por último se trasladan las coordenadas
giradas.
Para expresar cualquier transformación bidimensional, representamos cada posición de coordenadas
cartesianas (x, y) con las tres coordenadas homogéneas (xh,
yh, h),
donde:
Por tanto, una representación general de coordenadas homogéneas se puede expresar también como (h·x, h·y, h).
Para transformaciones geométricas bidimensionales, seleccionamos el parámetro homogéneo h como cualquier valor no cero. Así, existe un número finito de representaciones homogéneas equivalentes para cada punto de coordenadas (x, y). Una opción conveniente consiste en sólo establecer h = 1. Entonces, se representa cada posición bidimensional con las coordenadas homogéneas (x, y, 1). Se requieren otros valores para el parámetro h, por ejemplo, en las formulaciones de matriz de transformaciones de vista tridimensionales.
2.3.Composición de transformaciones Bidimensionales
Con las representaciones de posición de coordenadas cartesianas (x, y) del tema anterior, podemos establecer una representacion de (X,Y), haciendo la transformación compuesta al calcular el producto de la representacion (X,Y).
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: como
P' = R(θ2 )· R(θ1{ )·P} = R(θ2 { )·R(θ1)}·P
Escalaciones
las operaciones de escalación sucesivas son multiplicativas. Es decir, si debiéramos triplicar el tamaño de un objeto dos veces en una sucesión, el tamaño final sería nueve veces el tamaño original: como
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.
3. Traslade el objeto de manera que se regrese el punto pivote a su posición original.
Formula: T (xr , yr )·R(θ )·T (−xr ,−yr ) = R(xr , yr ,θ )
Escalación del punto fijo general
Secuencia de transformación para producir escalación con respecto de una posición fija seleccionada (xf, yf) al utilizar una función de escalación que sólo puede escalar en relación con el origen de las coordenadas.
1. Traslade el objeto de modo que el punto fijo coincida con el origen de las
coordenadas.
2. 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.
Formula: T (xf , yf )·S(sx , sy )·T (−xf ,−yf ) = S(xf , yf , sx , sy )
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 multiplicarprimero B por C: A·B·C = (A·B)·C = A·(B·C)
2.4.Transformación ventana-área de vista
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, años luz, etcétera.
La transformación que establece la correspondencia entre la-ventana y el área de vista se aplica a todas las primitivas de salida en coordenadas de mundo para que correspondan a coordenadas de pantalla.
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.
2.5.Transformaciones de composición general y de
eficiencia computacional.
traslaciones, rotaciones y escalaciones se puede expresar como:
2. Ejemplo:
En el siguiente ejemplo, se escala y gira un polígono con respecto de un punto de
Una rotación de 90° en sentido contrario al giro de las manecillas del reloj transformará un eje positivo en otro. La tabla siguiente se desprende de esta convención:
En este apartado se analizará la forma de componer matrices de transformación tridimensionales usando un ejemplo. El objetivo es transformar los segmentos de línea dirigida P1P2 y P1P3, de su posición inicial en la parte (a) a su posición final en la parte (b). De esta manera, el punto P1 se trasladará al origen P1P2 quedará en el eje positivo y P1P3 quedará en la mitad del eje positivo del plano (x, y). Las longitudes de las líneas no se verán afectadas por la transformación.
Se presentan dos formas de lograr la transformación deseada:
referencia determinado y luego se traslada el objeto. En la figura se ilustran las posiciones original y final del polígono que se transforma mediante esta secuencia.
2.6.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). Los puntos cuya coordenada W es cero se llaman puntos en el infinito. Donde w=1.Una rotación de 90° en sentido contrario al giro de las manecillas del reloj transformará un eje positivo en otro. La tabla siguiente se desprende de esta convención:
- Se usa el sistema de mano derecha porque se trata de una convención matemática estándar. Aunque en la graficación tridimensional es conveniente pensar en un sistema de mano izquierda, ya que un sistema de mano izquierdada la interpretación natural de que los valores mayores de z se encuentran más lejos del observador.:
2.7.Composición de transformaciones
tridimensionales.
Se presentan dos formas de lograr la transformación deseada:
- Primer método, componer las transformaciones primitivas T, Rx, Ry y Rz.
- El segundo método, utiliza las propiedades de las matrices ortogonales especiales.
- Primer método, Pasos:
- Traslación de P1 al origen.
- Rotación sobre el eje y para que P1P2 esté en el plano (y, z).
- Rotación sobre el eje x para que P1P2 esté en el eje z.
- Rotación sobre el eje z para que P1P3 esté en el plano (y, z).
Al aplicar T a P1, P2 y P3 se obtiene:
Paso 2: Rotación sobre el eje y. Así como la proyección de P1P2 sobre el plano (x, z). El ángulo de rotación es –(90 - θ) = θ -90.
Donde:
Como era de esperar, el componente x de P2’’ es cero y el componente z es la longitud:
Paso 3: Rotación sobre el eje x. El ángulo de rotación es φ, para el cual
Donde D2 = |P1’’P2’’|, la longitud de la línea P1’’P2’’ son la nisna, ya que las transformaciones de rotación y traslación conservan la longitud:
coincidiendo P1P2 con el eje z positivo.
Paso 4. Rotación sobre el eje z. P3’’’ en la posición:
La rotación a través del ángulo positivo α, con:
Resultado matriz :
- La segunda manera, Pasos de obtener la matriz R es usar las propiedades de las matrices ortogonales:
Como Rz es el vector unidad sobre P1P3 que rotará hacia el eje positivo,
Además, el vector unidad R, es perpendicular al plano de P1, P2 y P3 y rotará hacia el eje x positivo, de manera que R, debe ser el producto cruz normalizado de dos vectores en el plano:
Finalmente,
rotará hacia ele eje y positivo. La matriz compuesta se expresa como
Fuente:
- Libro de Texto de Graficación por Martha Azucena Fernández Saucedo.Asesor: Rogelio Ferreira Escutia
No hay comentarios:
Publicar un comentario