Transformaciones geométricas basicas en los sistemas de graficación
Gráficas por computadora (Computer Graphics)
Estudia los procedimientos para producir despliegues visuales en dispositivos de salida como el monitor de una computadora.
Una transformación geométrica puede aplicarse a figuras planas (2D) o a objetos en el espacio (3D).
Si los puntos que se alteran tienen coordenadas de dos componentes (x,y), la transformación es en 2D.
Y si alteran puntos con coordenadas (x,y,z), la transformación es en 3D.
Transformaciones geométricas básicas en 2D son:
- Escalación
- Traslación
- Rotación
Transformaciones geométricas básicas en 3D son:
- Escalación
- Traslación
- Rotación en torno al eje X
- Rotación en torno al eje Y
- Rotación en torno al eje Z
Procedimiento general al aplicar una transformación geométrica
- Primero se debe tener la información de las coordenadas del objeto a transformar.
- Se selecciona la transformación geométrica por realizar.
- Se aplica la transformación seleccionada a cada una de las coordenadas originales del objeto, para obtener las coordenadas modificadas del objeto.
- Se redibuja el objeto con las nuevas coordenadas, visualizándose el objeto ya modificado.
Escalación 2D
Nos permitirá cambiar las dimensiones de un objeto.
Requiere 2 parámetros:
Sx = Factor de escalación en X
Sy = Factor de escalación en Y
Sx,Sy > 1 = Aumenta la dimensión
Sx,Sy < 1 = Disminuye la dimensión
Sx,Sy = 1 =Se mantiene la dimensión
Traslación 2D
Nos permitirá cambiar la posición de un objeto, moviéndolo en línea recta desde una posición inicial a la posición final.
Requiere 2 parámetros:
Tx = Desplazamiento en X
Ty = Desplazamiento en Y
Tx, Ty > 0 = Desplazamiento positivo
Tx, Ty < 0 = Desplazamiento negativo
Tx,Ty = 0 = No hay desplazamiento
Rotación 2D
Nos permite rotar o girar un objeto en torno al origen un ángulo dado.
Requiere 1 parámetro:
Requiere 1 parámetro:
q = Ángulo de rotación
q > 0 = Rotación contraria a sentido de las manecillas del reloj
q < 0 = Rotación en el sentido de las manecillas del reloj
q = 0 = Sin rotación
Escalación 3D
Nos permitirá cambiar las dimensiones de un objeto.
Requiere 3 parámetros:
Sx = Factor de escalación en X
Sy = Factor de escalación en Y
Sz = Factor de escalación en Z
Sx,Sy,Sz > 1 = Aumenta la dimensión
Sx,Sy,Sz < 1 = Disminuye la dimensión
Sx,Sy,Sz = 1 = Se mantiene la dimensión
Traslación 3D
Nos permitirá cambiar la posición de un objeto, moviéndolo en línea recta desde una posición inicial a la posición final.
Requiere 3 parámetros:
Tx = Desplazamiento en X
Ty = Desplazamiento en Y
Tz = Desplazamiento en Z
Tx, Ty,Tz > 0 = Desplazamiento positivo
Tx, Ty,Tz < 0 = Desplazamiento negativo
Tx,Ty,Tz = 0 = No hay desplazamiento
Representación matricial
- Facilita el cómputo de las transformaciones a simples multiplicaciones matriciales.
- Se requiere representar las coordenadas en forma homogénea.
(x,y) se representa como (x,y,1)
(x,y,z) se representa como (x,y,z,1)
Coordenadas Homogéneas
Uno de los problemas con que nos enfrentamos es la posible confusión entre un punto y un vector, a la hora de representarlos. Por ejemplo, P = ( 3 2 ) y v = ( -2 5 ) comparten la misma representación matricial. Además, no se puede representar un cambio de marco con multiplicaciones matriciales. Para evitar estas dificultades, usaremos coordenadas homogéneas las cuales agregan un elemento o dimensión más al que tenemos, para representar puntos y vectores.
En el marco descrito por ( u1, u2, P0 ), cualquier punto, P, puede ser representado como,
En el marco descrito por ( u1, u2, P0 ), cualquier punto, P, puede ser representado como,
P = a u1 + b u2 + P0
Podemos expresar lo anterior con matrices, resultando en lo siguiente:
( u1 )
P = ( a b 1 ) ( u2 )
( P0 )
Asimismo, podemos expresar cualquier vector del mismo marco de la siguiente manera:
v = c u1 + d u2
La expresión en forma matricial es la siguiente:
( u1 )
v = ( c d 0 ) ( u2 )
( P0 )
Podemos expresar este vector sencillamente como:
v = ( c d 0 )
Resumiendo, con las coordenadas homogéneas,
- Podemos representar y manipular puntos y vectores de la misma manera.
- Cualquier punto en 2D se representará así, P = ( x, y, 1 ).
- Cualquier vector en 2D se representará así, v = ( vx, vy, 0 ).
Existe una relación lineal entre un punto en 2D y su representación en coordenadas homogéneas. Al extender un punto en 2D a uno en 3D, éste se convierte en una línea recta de la forma, P = ( tx, ty, tw ). Por lo tanto, tenemos un conjunto de coordenadas equivalentes, como es ( 2, 3, 1 ), ( 4, 6, 2 ), ( 20, 30, 10 ), etcétera. Sin embargo, como nos interesa mantener el tercer componente como 1, debemos homogeneizar el trío. Esto se hace dividiendo el tercer componente, w, entre todos. Por ejemplo, P = ( -15, 10, 5 ) pasa a ser P = ( -3, 2, 1 ).
Bibliografia
* http://encanta.avalonsoftware.org/idgaw/09/animvect2.php
*http://www.mitecnologico.com/Main/Escalacion
*http://www.unsj-cuim.edu.ar/portalzonda/MATEMATICA/Paginas/TransfornacionesMatriciales.htm
*http://delta.cs.cinvestav.mx/~mcintosh/comun/summer2006/complexJulio_html/node7.html
*http://graficos.conclase.net/curso/?cap=006b#Coordenadas_Homogeneas
*http://www.mitecnologico.com/Main/Escalacion
*http://www.unsj-cuim.edu.ar/portalzonda/MATEMATICA/Paginas/TransfornacionesMatriciales.htm
*http://delta.cs.cinvestav.mx/~mcintosh/comun/summer2006/complexJulio_html/node7.html
*http://graficos.conclase.net/curso/?cap=006b#Coordenadas_Homogeneas