lunes, 12 de septiembre de 2011

Transformaciones Geometricas

Habitualmente, un paquete gráfico permite al usuario especificar que parte de unaimagen definida se debe visualizar y dónde esta parte se debe colocar en el dispositivo devisualización. Cualquier sistema de coordenadas que sea conveniente, referido al sistema dereferencia de coordenadas del mundo, se puede usar para definir la imagen.

Transformaciones bidimensionales

Traslación

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

Rotación

Se aplica una rotación bidimensional en un objeto al cambiar su posición a lo largo de latrayectoria de una circunferencia en el plano de xy. para generar una rotación,especificamos un ángulo de rotación θ y la posición (xr , yr) del punto de rotación (o puntopivote) en torno al cual se gira el objeto.

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

Coordenadas homogéneas y representaciónmatricial

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 posicionesapropiadas. En este tema consideramos cómo se pueden volver a formular lasrepresentaciones de la matriz de modo que se pueden procesar de manera eficiente esassecuencias de transformación.Es posible expresar cada una de las transformaciones básicas en la forma de matrizgeneral con las posiciones de coordenadas P y P’ representadas como columnas de vector.

Composición de transformacionesbidimensionales

Con las representaciones de matriz del tema anterior, podemos establecer una matrizpara cualquier secuencia de transformaciones como una matriz de transformacióncompuesta al calcular el producto de la matriz de las transformaciones individuales. Lacreación de productos de matrices de transformación a menudo se conoce comoconcatenación o composición de matrices

Traslaciones
Se se aplican dos vectores de traslación sucesivos (t x1, t y1) y (t x2 , t y2 ) en la posiciónde coordenadas P, la localización transformada final P, la localización transformada final P’se calcula como:

P'=T (t  x2,t  y2)·T (t  x1,t  y1)·P}={T (t  x2,t  y2)·T (t  x1,t  y1)}·P

Rotaciones
Dos rotaciones sucesivas que se aplican en el punto P producen la posicióntransformada

P'=R(θ 2)·R(θ 1){·P}=R(θ 2){· R(θ 1)}·P

Al multiplicar las dos matrices de rotación, podemos verificar que dos rotacionessucesivas son aditivas:

R(θ 2)· R(θ 1)=R(θ 1+θ 2)

de modo que es posible calcular las coordenadas giradas finales con la matriz derotación compuesta como

P'=R(θ 1+θ 2)·P

Escalaciones
Concatenar matrices de transformación para dos operaciones de escalación sucesivasproduce la siguiente matriz de escalación compuesta:

La matriz resultante en este caso indica que las operaciones de escalación sucesivasson multiplicativas. Es decir, si debiéramos triplicar el tamaño de un objeto dos veces enuna sucesión, el tamaño final sería nueve veces el tamaño original.

Rotación del punto pivote general
Con un paquete gráfico que sólo ofrezca una función de rotación para girar objetoscon respecto del origen de las coordenadas, podemos generar casi cualquier punto pivoteseleccionado (xr , y r ) 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 origende 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ónoriginal.


Escalación del punto fijo general
La siguiente figura ilustra una secuencia de transformación para producir escalacióncon respecto de una posición fija seleccionada (x f , yf ) al utilizar una función de escalaciónque 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 lascoordenadas.
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ónoriginal.

Propiedades de concatenación
La multiplicación de matrices es asociativa. Para tres matrices cualesquiera A, B y C, elproducto matricial A·B·C se puede lelvar a cabo al multiplicar primero a por B o multiplicarprimero B por C:
A· B·C =( A· B)·C =A·( B·C )

Por tanto, podemos evaluar los productos matriciales al utilizar una agrupaciónasociativa 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. engeneral el producto matricial A·B no es igual que B·A. Esto significa queremos trasladar ygirar un objeto, debemos tener cuidado sobre el sentido en que se evalúa la matriz compuesta.

Transformación ventana-área de vista
Algunos paquetes gráficos permiten que el programador especifique coordenadas deprimitivas 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. Se emplea el término de mundo porque el programa de aplicaciónrepresenta 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 alpaquete de subrutinas gráficas cómo establecer la correspondencia entre las coordenadasde mundo y las coordenadas de pantalla (usaremos el término específico coordenadas depantalla para relacionar este análisis específicamente con SRGP, pero podrían usarsedispositivos de impresión, en cuyo caso sería más apropiado el término coordenadas dedispositivo).

Transformaciones de composición general y deeficiencia computacional
Una transformación bidimensional general, que representa una combinación detraslaciones, rotaciones y escalaciones se puede expresar como
Los cuatro elementos rsij son los términos multiplicativos de rotación -escalación en atransformación que implican sólo ángulos de rotación y factores de escalación. Loselementos trs x ytrs  y son los términos de traslación que contienen combinaciones dedistancias de traslación, coordenadas de punto pivote y de punto fijo, así como de ángulosde rotación y parámetros de escalación.Por ejemplo, si debe escalar, girar un objeto con respecto de las coordenadas de sucentroide (x c , y c ) y después trasladarlo.


Representación matricial de transformacionestridimensionales
Así como las transformaciones bidimensionales se pueden representar con matrices de3 X 3 usando coordenadas homogéneas, las transformaciones tridimensionales se puedenrepresentar con matrices de 4 X 4, siempre y cuando usemos representaciones decoordenadas homogéneas de los puntos en el espacio tridimensional. Así, en lugar derepresentar un punto como (x, y, z ), lo hacemos como (x, y, z, W ), donde dos de estoscuá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, larepresentación estándar de un punto (x, y, z, W ) con W ≠ 0 se indica (x/W, y/W, z/W, 1).

Composición de transformacionestridimensionales
En este apartado se analizará la forma de componer matrices de transformacióntridimensionales usando un ejemplo. El objetivo es transformar los segmentos de líneadirigida P 1P 2 yP 1P 3 en la figura 2.18 de su posición inicial en la parte (a) a su posición finalen la parte (b). De esta manera, el punto P 1 se trasladará al origen P 1P 2 quedará en el ejepositivo yP 1P 3 quedará en la mitad del eje positivo del plano (x, y ). Las longitudes de laslíneas no se verán afectadas por la transformación.

No hay comentarios:

Publicar un comentario