DISEÑO ASISTIDO POR COMPUTADOR ± FAIN ± ESIS - TGTD

.

TRANSFORMACIONES GEOMÉTRICAS EN TRES DIMENSIONES
Illa Chambi, Rubén Edgar; Abanto Sánchez, Fernando; Arcaya Chambilla, Patricia; Ururí, Elizabeth

Escuela Académico Profesional de Ingeniería en Informática y Sistemas Universidad nacional ³Jorge Basadre Grohmann´
E-mail: Rubenich.2dic@hotmail.com; Fernando0260@gmail.com; Patyta1524@hotmail.com; Tierna_alma_eli@hotmail.com

RESUMEN: Se presenta las transformaciones geométricas en tres dimensiones, el fundamento matemático y la implementación en Matlab. PALABRAS CLAVE: rotación, escalamiento, traslación, sesgo, objeto, punto, ángulo. I. INTRODUCCIÓN Las transformaciones forman una parte importante en la creación manipulación de imágenes y objetos en computación gra¿ca. Estas nos permiten modi¿car la apariencia y posición de los mismos sin tener que volver a modelar o componer de nuevo todo el objeto. También permite de¿nir un objeto en cualquier parte de la escena y como mover o rotar la escena para tener otra perspectiva de la misma. El trabajo está compuesto por 5 secciones:  Transformaciones: Se de¿ne que es una transformación y sus clasi¿cacion en tipos.  Transformaciones en 2D: Se trata de las transformaciones en 2 dimensiones haciendo hincapié en las formulas matemáticas detrás del proceso.  Transformaciones en 3D: Se trata de las transformaciones en 3 dimensiones haciendo hincapié en las formulas matemáticas detrás del proceso. ´  Conclusión: se hace un resumen de lo realizado en el trabajo.  Bibliografía: se hace referencia a todos los libros tomados como ayuda para realizar el trabajo. Las operaciones o transformaciones de objetos en el plano o en el espacio, se puede realizar mediante el uso de matrices, un objeto se representa mediante un conjunto de puntos, y a cada punto se le aplica la transformación adecuada (rotación, escalamiento, traslación). La Realidad La realidad conocida por nosotros consiste de tres dimensiones (3D), en un espacio donde hay solo tres direcciones perpendiculares entre sí, estas direcciones

Son familiarmente conocidas como: izquierda o derecha, arriba o abajo, y atrás o adelante, cualquier otra dirección es simplemente una combinación de estas direcciones básicas matemáticamente, se habla de los tres ejes en coordenadas cartesianas, llamados comúnmente X, Y y Z.

Eje en el espacio 3D Se puede pensar que en este espacio tridimensional, no puede existir una dimensión más, físicamente podría ser cierto, sin embargo, matemáticamente hablando, el numero 3 no limita la cantidad de dimensiones espaciales posibles, ya que es posible tener dimensiones menores, por ejemplo, el espacio 1D que consiste de una línea recta que se extiende al infinito, o el espacio 2D que consiste de un plano que se extiende indefinidamente en alto y ancho, por tanto, matemáticamente es posible tratar con dimensiones superiores a 3D. En general las técnicas para representar el mundo tridimensional se basa en técnicas utilizadas por artistas, fotógrafos, al crear imágenes realistas. Pero el computador se vale de modelos matemáticos para tal propósito. Uno de los problemas fundamentales de la graficación tridimensional es graficar un mundo en 3d con tres coordenadas que representan el alto, ancho y la profundidad de los objetos, en un dispositivo en dos dimensiones, esto se resuelve mediante la secuencia de actividades de la figura 1.

Fig. 1 Pasos para Desplegar un Objeto Tridimensional

1

para las traslaciones. mediante la inclusión de compensaciones en sus propias coordenadas.  Escalamiento isotrópico: Este escala el objeto manteniendo las mismas proporciones. Es decir.  Rotación: Se rota el objeto a partir de un eje. 4. ty a las coordenadas originales (x. mediante las proyecciones es ahora de mostrar la escena en el dispositivo. Esto se puede ver aplicado a un objeto. Para trasladar una posición bidimensional. y¶ = y + ty Fig. añadiendo la preservación de los ángulos para el escalamiento isotrópico. De modo similar.  Recortar Contra un Volumen Visual Una escena puede ser muy amplia como para que pueda observarse por completo.  Proyectar Un Objeto en el Plano Visual Mediante las proyecciones transformamos coordenadas tridimensionales en coordenadas bidimensionales. Así. FUNDAMENTO TEÓRICO Las operaciones que se aplican a descripciones geométricas de un objeto para cambiar su posición.  Definir Objetos en Coordenadas Mundiales Establecer coordenadas que tendrán los objetos que se desea visualizar en la escena tridimensional. 5. Además se preservan las líneas paralelas.  Escalamiento: Se puede escalar en determinada magnitud las dimensiones de la ¿gura y/o objeto.TGTD . agregando las perspectivas y preservando las líneas. usando los siguientes vectores columna para representar posiciones de coordenadas y el vector de traslación: . se está moviendo la posición del punto original a lo largo de una trayectoria en línea recta hacia su nueva localización.y¶) como se muestra a continuación: x¶ = x + tx. 6. para generar una nueva posición de coordenadas. II.  Shear: En este caso se inclina el objeto. 2 Sistema de Coordenadas de la mano derecha  Transformar a Coordenadas de Vista Los objetos se visualizan respecto de un observador.  Traslación: Esta mueve el objeto y/o imagen completamente. 3. tales como cuadriláteros.y) para obtener la nueva posición de coordenadas (x¶.  Transformar a Coordenadas de Dispositivo Luego de haber obtenido las correspondientes coordenadas bidimensionales. Transformaciones Las transformaciones son funciones que mapean puntos de un lugar a otro. usando el mismo desplazamiento a lo largo de trayectorias paralelas. añadimos distancias de traslación tx. Similitud: Estas incluyen a las transformaciones euclidianas. A¿nes: Estas transformaciones incluyen las transformaciones Lineales y las de Similitud. En efecto. 2 Podemos expresar las ecuaciones de traslación anteriores como una única ecuación de una matriz. Tipos de Transformaciones Las Transformaciones pueden ser clasi¿cadas de la siguiente manera: 1. 2. Euclidianas: En estas transformaciones se preservan tanto los ángulos como las distancias. orientación o tamaño se llaman transformaciones geométricas.DISEÑO ASISTIDO POR COMPUTADOR ± FAIN ± ESIS . una traslación es aplicable a un objeto que se define con múltiples posiciones de coordenadas. el objeto se escala la misma magnitud tanto en x como en y. En el mejor de los casos el observador estará situado justo en el origen del sistema de coordenadas ya establecido. Además se añaden. rotaciones e incluyen la transformación identidad. El establecimiento en base a un sistema de coordenadas de mano derecha. Proyectivas: Se incluyen las transformaciones A¿nes. A. Traslaciones Bidimensionales Se realiza una traslación de un punto sencillo de coordenadas.  ReÀejo: Consiste en la imagen especular de la imagen original. el objeto completo se muestra en la nueva localización. rotación y escalamiento isotrópico. Simples: Estas transformaciones están conformadas por:  Identidad: Esta transformación deja los objetos tal cual como estaban. mediante la recolocación de todas las posiciones de sus coordenadas. en este caso se mapean los puntos del objeto de un lugar de origen hacia un lugar de destino. Lineales: En este caso se tienen la transformación identidad.

De la misma forma. Comenzaremos explicando cómo se utilizan para conseguir transformaciones en 2 dimensiones y. mediante la rotación de puntos con el ángulo especificado sobre el eje de rotación. Traslaciones Tridimensionales La manera más fácil de conseguir las transformaciones básicas (traslación.DISEÑO ASISTIDO POR COMPUTADOR ± FAIN ± ESIS .yt) llamada punto de rotación sobre los cuales el objeto va ser rotado. en general las transformaciones afines) es utilizando matrices de Transformación. En un espacio tridimensional. llamadas coordenadas homogéneas. y. yh. trasladamos un objeto especificando un vector de traslación tridimensional. Con ligeros cambios a las matrices.1) de donde (xh. rotación. h).2) Existe un número finito de representaciones homogéneas equivalentes para cada punto El factor de escala Sx.P Donde la matriz de rotación es: «cos U R!¬ ­ senU  senU » cos U ¼ ½ Cambio De Escala Para alterar el tamaño de un objeto. Ahora. y) por las coordenadas (xh.P Transformaciones Geométricas En Un Espacio Tridimensional Los métodos para transformaciones pueden obtenerse extendiendo los métodos bidimensionales. y¶). veremos las transformaciones en 3 dimensiones Coordenadas Homogéneas Rotaciones Bidimensionales Se genera una transformación de rotación de un objeto mediante la especificación de un eje de rotación y un ángulo de rotación. incluyendo consideraciones para la coordenada z. se pueden combinar para conseguir que una sola matriz resultante nos sirva para varias de estas transformaciones. mientras que Sy hace el cambio de escala en la dirección y. x. h . Una simple operación de cambio de escala bidimensional se lleva a cabo multiplicando las posiciones de los objetos (x.TGTD . aplicamos transformaciones de escala. Las ecuaciones básicas del cambio de 3 . posteriormente. cambia la escala de un objeto en la dirección x. escalación. yt = 0) x' ! x cos U  ysenU y ' ! x cos U  y cos U Podemos escribir las ecuaciones de rotación en forma de matriz: P¶ = R. T ! ¬ ¼ ­ y½ ­ y '½ ­t y ½ Esto nos permite escribir las ecuaciones de traslación bidimensionales en forma de matriz. y) por los factores de escala. El utilizar coordenadas homogéneas nos ayudará a obtener este efecto. Los parámetros para la rotación bidimensional son el ángulo de rotación U y una posición (xt . podemos seleccionar cualquier orientación espacial para la rotación de ejes. h) (2. que determina cuánto va a ser movido el objeto en cada una de las tres direcciones de coordenadas. U La relación entre el ángulo y las coordenadas de las posiciones originales y transformadas es la siguiente (xt = 0. donde x = xh/h. x' = x. h) = (h . «t x » « x» « x'» P ! ¬ ¼. cambiamos la escala de un objeto eligiendo un factor de escala para cada una de las tres coordenadas cartesianas. yh.Sy Nos será útil sustituir las coordenadas (x.¬ y ¼ ½­ ½ ­ ½ ­ P' ! S . P' ! ¬ ¼. y¶=y.Sx. Cuando hemos visto las rotaciones bidimensionales en el plano xy. y = yh/h (2. P¶ = P + T escala en dos dimensiones pueden escribirse en la forma siguiente: « x'» « Sx 0 » « x » ¬ y '¼ ! ¬ 0 Sy ¼. necesitábamos considerar sólo las rotaciones sobre los ejes que fueran perpendiculares al plano xy. Pero la extensión de los métodos de rotación a los de tres dimensiones es menos directa. Sx y Sy para producir las coordenadas transformadas (x¶. Todos los puntos son entonces transformados a la nueva posición.

-ty1). ty1). es decir. obtenemos: Donde P y P¶ son vectores columna como matrices. Transformaciones Compuestas Esta representación nos permite ³combinar´ varias transformaciones en una. Para la traslación de un punto (x. Se representan las coordenadas con vectores de columna de 3 elementos y las operaciones de transformación se expresan como matrices de 3 por 3. Los ángulos de rotación positiva producen giros en el sentido opuesto a las manecillas del reloj con respecto al eje de una coordenada. z) a la posición P¶ = (x¶. de coordenadas (x. y. Y la matriz de rotación respecto al eje y se especifica como sigue. La matriz de rotación respecto al eje z se especifica como sigue. y¶. Una rotación tridimensional se puede especificar alrededor de cualquier línea en el espacio. un ángulo ( ). y) seleccionando un valor no cero para h. Expresar posiciones en coordenadas homogéneas nos permite representar todas las ecuaciones de transformación geométrica como multiplicaciones de matriz. y. escogeremos h = 1. z¶) con la operación de matriz 4 Se forma una matriz de rotación inversa al sustituír el ángulo de rotación por ± . ty y tz especifican las distancias de traslación en x. Los valores negativos para los ángulos de rotación generan rotaciones en una dirección en el sentido del reloj.TGTD . y. y la cantidad de rotación angular. el efecto de trasladar un objeto cierta distancia T (tx1.DISEÑO ASISTIDO POR COMPUTADOR ± FAIN ± ESIS . Por conveniencia. 1). se consigue multiplicando cada uno de sus puntos P (x. MATRICES DE TRANSFORMACIÓN EN 3D Traslación En la representación homogénea tridimensional de las coordenadas. yyz Rotación Para generar una transformación de rotación. III. de modo que se produce . y. multiplicando las diferentes matrices de transformación. 1) de la manera siguiente: Donde P¶ es el vector columna que representará al punto resultante y T. Los ejes de rotación más fáciles de manejar son aquellos paralelos a los ejes de coordenadas. 1) una distancia tx en x y una distancia ty en y. por ejemplo. con lo que cada posición bidimensional se representará con las coordenadas homogéneas (x. y tx. girarlo un cierto ángulo R( ) y volverlo a trasladar a su posición inicial T2 (-tx1. R y T2 son las matrices de transformación correspondientes Lo que sería lo mismo que multiplicar al punto P por la matriz M obtenida el combinar las tres matrices. La matriz de rotación respecto al eje x se especifica como sigue. la matriz. se traslada un punto de la posición P = (x. debemos designar un eje de rotación respecto del cual girará el objeto. si el observador se encuentra viendo a lo largo de la mitad positiva del eje hacia el origen de coordenadas.

Para restringir la rotación sobre un eje global. los lados son gris medio. arrastre una cara del cubo de seguimiento. y la parte posterior es gris oscuro. tratamiento de vectores y matrices. introduzca un valor entre 0 y 160 en el cuadro de texto Perspectiva. Un ángulo menor es similar a un teleobjetivo..Para ajustar la perspectiva.Introduzca valores entre -180 y 180 en los cuadros de texto del eje horizontal de profundidad (z) . un ángulo de lente mayor es similar a un gran angular. comandos útiles para la graficación. el eje y. El puntero se convierte en una fecha de dos puntas .. IV.Sesgo Figura 2 .Para restringir la rotación alrededor del eje del objeto.DISEÑO ASISTIDO POR COMPUTADOR ± FAIN ± ESIS . La parte anterior del objeto está representada por la cara azul del cubo de seguimiento.. mantenga pulsada la tecla Mayús mientras arrastra en horizontal (eje y global) o en vertical (eje x global). el z. 5 . arrastre un borde del cubo de seguimiento.Para rotar sin restricciones. vertical (y) y Figura 3 . Procedimiento de las opciones de posición de rotación en 3D Lleve a cabo uno de los procedimientos siguientes: Escoja una posición predefinida del menú Posición. las partes superior e inferior del objeto son de color gris claro.Escalamiento en 2D A continuación se muestran capturas del programa desarrollado en Matlab. y el borde del cubo cambia de color para indicar el eje alrededor del cual rotará el objeto. la matriz identidad cuando se multiplica cualquier matriz de rotación por su inverso. arrastre la banda azul que rodea el cubo de seguimiento. los bordes verdes. (x) . y los bordes azules. PROCEDIMIENTOS Implementación de transformaciones geométricas en 2 y 3 dimensiones Las transformaciones geométricas se implementaron en Matlab 6.Rotación en 2D 5. 1. Los bordes rojos representan el eje x del objeto.TGTD .. 2. Para rotar el objeto alrededor del eje z global. etc. Figura 1 .. 3. 4. este software nos ofrece la posibilidad de desarrollar interfaces gráficas de usuario.

'value') == 1) R = [1 0 0 0. handles) r = eval(get(handles. 'String')). hold off. 'String')). %grafica los puntos ingresados %Los puntos ingresados se almacenan en una matriz A = eval(get(handles. %convierte en angulo en grados en un angulo en radianes r = (pi/180)*r. eventdata.z.3) 1]'.Traslación en 3D Figura 6 .radiobutton1. end Figura 5 . 0 0 0 1]. 0 cos(r) -sin(r) 0.y.1).edit13. [m. 0 0 0 1]. 0 1 0 0.Rotación en 3D Parte del código fuente para la rotación en 3D %Rotación function pushbutton3_Callback(hObject.n] = size(A). 'value') == 1) R = [cos(r) 0 sin(r) 0. 0 0 1 0.TGTD . sin(r) cos(r) 0 0. %NP: Nuevo Punto x(i) = NP(1. %Rotación respecto al eje y elseif (get(handles.1). 0 0 0 1 ].1).Escalamiento en 3D %Rota cada uno de los puntos de la matriz A for i=1:m P = [ A(i. -sin(r) 0 cos(r) 0. %P: Punto inicial NP = R*P.DISEÑO ASISTIDO POR COMPUTADOR ± FAIN ± ESIS . z(i) = NP(3. end plot3(x. %Rotación respecto al eje y else R = [cos(r) -sin(r) 0 0.2) A(i. 0 sin(r) cos(r) 0. 6 .1) A(i.radiobutton2.edit1. Figura 4 Figura 7 .'m'). %Rotación respecto al eje x if (get(handles. grafica(handles). y(i) = NP(2.

7 . M. Addison Wesley Professional. Fundamentals of Interactive Computer Graphics. [1] BIBLIOGRAFÍA Donald Hearn. 1nd Edition. VAN DAM Andries.TGTD . cuando se habla de cientos o miles de puntos. Pauline Baker. Gráficos por computadora con OpenGL. V.. VI. CONCLUSIONES Las operaciones requeridas para llevar a cabo las transformaciones geométricas son amplias. 1984. [2] FOLEY James D.DISEÑO ASISTIDO POR COMPUTADOR ± FAIN ± ESIS . por lo que el procesador realiza un trabajo considerable.