Tema 3 Tema 3 Tema 3. Transformaciones 2D 3.2 Transformaciones en 2D 3.3 Composición de transformaciones 3.4 Transformaciones geométricas respecto a un punto 3.5 Transformaciones entre sistemas de coordenadas Gràfics per Computador 2004/2005 Tema 3. Tema 3. Transformaciones 2D 2D 1 Nuestro modelo a visualizar estará dispuesto en el espacio geométrico 2D ó 3D Las transformaciones geométricas serán generalmente imprescindibles para la visualización de nuestro modelo en un dispositivo Las transformaciones geométricas también serán imprescindibles en sistemas CAD, simulación, videojuegos etc. Las transformaciones que estudiaremos serán: traslación, giro y escalado Gràfics per Computador 2004/2005 Tema 3. Tema 3. Transformaciones 2D 2D 2 1
Sistemas de coordenadas 2D y 3D R 2 unto en (2,3) R 3 Sistema de coordenadas dextrógiro Z unto en (2,-2,2) Gràfics per Computador 2004/2005 Tema 3. Tema 3. Transformaciones 2D 2D 3 Ejemplo de transformación geométrica R 2 Allí=(7,7) Instrucción para mover sumar 5 a x, sumar 4 a y Aquí=(2,3) Gràfics per Computador 2004/2005 Tema 3. Tema 3. Transformaciones 2D 2D 4 2
Cómo podemos relacionar distintos objetos? Se puede considerar la localización de los objetos con respecto a un punto central de referencia llamado origen Un vector indica cual es la dirección a seguir desde el origen y la longitud del camino hasta llegar a un punto Notación: fila o columna Ej.: el vector que apunta al centro del coche [ 10 2] 10 2 Utilizaremos la notación columna y las matrices de transformación se premultiplicarán (2,3) (8,7.5) (10,2) Gràfics per Computador 2004/2005 Tema 3. Tema 3. Transformaciones 2D 2D 5 Los vectores se utilizan en gráficos para: Representar las posiciones de los vértices Determinar la orientación de una superficie Vector normal a la superficie Modelar la interacción de la luz Vector de incidencia de la luz N N θ L γ L Gràfics per Computador 2004/2005 Tema 3. Tema 3. Transformaciones 2D 2D 6 3
Suma de vectores 2 = 3 2 4 6 '' = + ' = + = 3 2 5 4 ' = 2 + Gràfics per Computador 2004/2005 Tema 3. Tema 3. Transformaciones 2D 2D 7 roducto por un escalar Dependencia lineal Dos vectores son linealmente dependientes cuando uno es un múltiplo de otro 2x = 2 3 6 2 = = 2y 2 2 4 2 α x 3 = = y 2 - Gràfics per Computador 2004/2005 Tema 3. Tema 3. Transformaciones 2D 2D 8 4
Vectores base del plano Los vectores unidad (de longitud 1) en los ejes x e y se llaman los vectores base estándar del plano La colección de todos los múltiplos escalares de [1 0] nos da el primer eje de coordenadas La colección de todos los múltiplos escalares de [0 1] nos da el segundo eje de coordenadas Vectores base no ortogonales odemos obtener cualquier vector [n m] como combinación de otros dos vectores cualesquiera [a b] y [c d]? n a + + c α a β c = α β = m b d α b + β d Siempre podremos encontrar α y β mientras [a b] y [c d] no sean linealmente dependientes Gràfics per Computador 2004/2005 Tema 3. Tema 3. Transformaciones 2D 2D 9 ropiedades algebraicas de los vectores: Conmutativa + Q = Q + Asociativa ( + Q) + R = + (Q + R) Identidad (suma) Existe un vector 0 / (+0)=(0+)= para todo Inverso ara cualquier existe un vector - / + (-) = 0 Distributiva (vector): r (+Q)=r+rQ Distributiva (escalar): (r + s)=r+s Asociativa (escalar): r(s)=(rs) Identidad (producto): ara el número real 1, 1= para todo Gràfics per Computador 2004/2005 Tema 3. Tema 3. Transformaciones 2D 2D 10 5
roducto escalar de vectores El resultado es escalar Define la longitud de un vector (*)=x 2 + y 2 es el cuadrado de la longitud ermite normalizar vectores La norma de un vector es su longitud Un vector es unitario si =1 ara normalizar: / Mide los ángulos entre dos vectores Si y son distintos de 0 entonces * = cos(θ φ) x x' ' = = x x' + y y' y y' =+ sinθ θ (θ φ) φ cosθ Gràfics per Computador 2004/2005 Tema 3. Tema 3. Transformaciones 2D 2D 11 ermite calcular la longitud de la proyección de un vector sobre un eje Si W es un vector unitario, entonces *W es la longitud de la proyección de sobre la línea que contiene W Determina si dos vectores son perpendiculares El producto escalar de dos vectores perpendiculares es cero - 3 ' = 4 4 = 3 θ (θ φ) φ W ' = x x' + y y' = (4-3) + (3 4) = 0 o ' = ' cos(90 ) = ' 0 = 0 Gràfics per Computador 2004/2005 Tema 3. Tema 3. Transformaciones 2D 2D 12 6
roducto vectorial El resultado es un vector (ortogonal a los vectores operando) Mide los ángulos entre dos vectores Si y son distintos de 0 entonces x = sen(θ φ) ermite calcular la distancia de un punto a una recta Si W es un vector unitario, entonces xw es la distancia de a la recta que contiene W Determina si dos vectores son paralelos El modulo del producto vectorial de dos vectores paralelos es 0 ' = θ i x x' j y y' k z z' (θ φ) φ θ (θ φ) φ W Gràfics per Computador 2004/2005 Tema 3. Tema 3. Transformaciones 2D 2D 13 3.2 Transformaciones 2D untos 2D: como vectores columna Transformaciones: matrices cuadradas que premultiplican al vector Si considerásemos los puntos como vectores fila, utilizaríamos las matrices traspuestas Gràfics per Computador 2004/2005 Tema 3. Tema 3. Transformaciones 2D 2D 14 7
3.2 Transformaciones 2D Traslación Desplazar un objeto desde una posición a otra diferente = + Tx; = + Ty; T x = T = = T y = + T Borrar las primitiva de la posición actual Sumar desplazamiento a los puntos de control Redibujar la primitiva en la nueva posición Gràfics per Computador 2004/2005 Tema 3. Tema 3. Transformaciones 2D 2D 15 3.2 Transformaciones 2D Escalado Modificación del tamaño de un objeto = * Sx; = * Sy; Sx S = 0 = 0 S = y = S x 0 0 S y Si un factor de escala es menor que 1 el objeto se reduce en esa dimensión Si un factor de escala es mayor que 1 el objeto aumenta en esa dimensión Si un factor de escala es negativo el objeto se invierte en esa dimensión Si los factores de escala son diferentes se cambian las proporciones El escalado se realiza respecto a un punto fijo (en este caso el origen) Gràfics per Computador 2004/2005 Tema 3. Tema 3. Transformaciones 2D 2D 16 8
3.2 Transformaciones 2D Escalado Gràfics per Computador 2004/2005 Tema 3. Tema 3. Transformaciones 2D 2D 17 3.2 Transformaciones 2D Rotación Giro de un punto respecto de otro (en este caso el origen) Si a un punto de coordenadas polares (r, β) se le aplica un giro a: = r*cos(β+α) = r*(cos(β)*cos(α) - sen(β)*sen (α)) = (r*cos(β))*cos(α) - (r*sen(β))*sen (α) = *cos(α) - *sen (α) = r*sen(β+α) = r*(sen(β)*cos(α) + cos(β)*sen (α)) = (r*sen(β))*cos(α) - (r*cos(β))*sen (α) = *cos(α) + *sen (α) r = R * cos( α) sen( α) R = sen( α) cos( α) Gràfics per Computador 2004/2005 Tema 3. Tema 3. Transformaciones 2D 2D 18 9
3.3 Composición de transformaciones Coordenadas homogéneas Homogeneizar las tres transformaciones: producto por una matriz ara obtener las coordenadas homogéneas se incluye el plano en un espacio 3D cuya tercera dimensión es constante [ ] [ 1] De este modo se pueden acumular varias transformaciones en una sola matriz Las nuevas matrices serán: 1 0 Tx T = 0 1 T y 0 0 1 Ex 0 0 E= 0 Ey 0 0 0 1 cos( α) sen( α) 0 R= sen( α) cos( α) 0 0 0 1 Gràfics per Computador 2004/2005 Tema 3. Tema 3. Transformaciones 2D 2D 19 3.3 Composición de transformaciones odemos combinar varias transformaciones para obtener operaciones más complejas or ejemplo -> Rotación respecto a un punto cualquiera (x c, y c ) En tres pasos: Traslación (-x c, -y c ), Rotación y Traslación (x c, y c ) Como las matrices son cuadradas se obtiene una única matriz 3 = T(x c, y c ) * R * T(-x c, -y c ) * Gràfics per Computador 2004/2005 Tema 3. Tema 3. Transformaciones 2D 2D 20 10
3.3 Composición de transformaciones Orden de las transformaciones El producto de matrices no es conmutativo M1*M2<>M2*M1 La aplicación de transformaciones tampoco lo es Transformaciones que si son conmutativas Traslación-Traslación Escalado-Escalado Rotación-Rotación Escalado roporcional-rotación Transformaciones que no son conmutativas Traslación-Escalado Traslación-Rotación Escalado No roporcional-rotación Traslación después de rotación Rotación después de traslación Gràfics per Computador 2004/2005 Tema 3. Tema 3. Transformaciones 2D 2D 21 3.4 Transformaciones geométricas respecto a un punto Las operaciones complejas se dividen en otras más sencillas Traslación: La traslación no depende de un punto de referencia Escalado: El escalado se realiza respecto a un punto de referencia (x,y) Trasladar el objeto (-x,-y) Realizar el escalado del objeto Deshacer la traslación Rotación: Las rotaciones se realizan desde un punto llamado centro de rotaciones (CR) Trasladar el objeto (-CR) Realizar la rotación del objeto Deshacer la traslación Gràfics per Computador 2004/2005 Tema 3. Tema 3. Transformaciones 2D 2D 22 11
3.5 Transformaciones entre Sistema de Coordenadas Sistema de coordenadas del mundo real (CMR) Descripción del sistema físico real Las unidades de medida dependen de la representación Se deben transformar en medidas del dispositivo (mapping) La transformación (mapping) se compone de un escalado y de un desplazamiento Sistema de coordenadas del dispositivo (CD) Depende del dispositivo Tamaño de la ventana, en pixels si es una pantalla Situación del origen de coordenadas Sentido de avance de cada coordenada Sistema de coordenadas del dispositivo normalizado (CDN) ara realizar el mapping de forma normalizada se utiliza un dispositivo ficticio de anchura 1 y altura 1 Gràfics per Computador 2004/2005 Tema 3. Tema 3. Transformaciones 2D 2D 23 3.5 Transformaciones entre Sistema de Coordenadas Cómo podemos pasar de un sistema de coordenadas a otro de la forma más eficiente y a ser posible de un modo normalizado Se define una zona del mundo real: ventana (window) Se define una zona del dispositivo: marco (viewport) El tamaño de un marco va de un pixel a toda la pantalla Lo que quede fuera de la ventana queda fuera del marco La transformación de coordenadas de la aplicación en coordenadas del dispositivo físico (CD) se realiza en 2 pasos: De CMR a CDN Transformación normalizada De CDN a CD Transformación del dispositivo Ventana Coordenadas del mundo real Marco Coordenadas del dispositivo normalizado Gràfics per Computador 2004/2005 Tema 3. Tema 3. Transformaciones 2D 2D 24 12
3.5 Transformaciones entre Sistema de Coordenadas wymax Coordenadas del Mundo Transformación ventana-marco: Se traslada la esquina inferior izquierda de la ventana al origen Se aplican los factores de escala para que marco y ventana tengan el mismo tamaño Se traslada el origen a la esquina inferior izquierda del marco wymin wxmin Ventana wxmax Coordenadas del mundo real vymax Marco vymin vxmin vxmax Coordenadas del dispositivo normalizado Gràfics per Computador 2004/2005 Tema 3. Tema 3. Transformaciones 2D 2D 25 3.5 Transformaciones entre Sistema de Coordenadas La transformación de CDN a CD sería similar a la anterior En general las ventanas y los marcos serán rectangulares Tipos de transformaciones entre sistemas: Sin recorte ISOTRÓICA ANISOTRÓICA Marco Con recorte Isotrópica (conservando proporciones, 1 factor de escala) o anisotrópica (2 factores de escala). ara conseguir la isotrópica, la definición del marco deberá ser proporcional al de la ventana Marco Gràfics per Computador 2004/2005 Tema 3. Tema 3. Transformaciones 2D 2D 26 13