Transformaciones Geométricas

1 Transformaciones GeométricasInfografía I Transformacion...
Author: Valeriano Victorino
0 downloads 2 Views

1 Transformaciones GeométricasInfografía I Transformaciones Geométricas © 2002 J.C.Dürsteler - UPF- IUA

2  2002 J.C.Dürsteler - UPF- IUAIntroducción La luz que invade las escenas que vemos se refracta y se refleja en los objetos. Ciertos colores son absorbidos y otros permanecen. Finalmente un frente de ondas excita nuestra retina y percibimos la escena. Desde el punto de vista de la Infografía, nuestro objetivo es crear un frente de onda que evoque una percepción similar, utilizando el hardware disponible.  2002 J.C.Dürsteler - UPF- IUA

3  2002 J.C.Dürsteler - UPF- IUAIntroducción Necesitamos disponer de una descripción matemática que nos permita definir  el espacio,  los objetos que componen la escena  las propiedades de esos objetos el movimiento de los mismos algoritmos apropiados para describir la interacción de la luz con la materia.  2002 J.C.Dürsteler - UPF- IUA

4  2002 J.C.Dürsteler - UPF- IUAIntroducción Disciplinas Geometría y Álgebra lineal para la descripción de los espacios y los movimientos dentro de los mismos. Física, especialmente óptica, para la descripción de la interacción de la luz con la materia. Teoría de la percepción y de la visión, para el diseño perceptual de las escenas  2002 J.C.Dürsteler - UPF- IUA

5  2002 J.C.Dürsteler - UPF- IUAIntroducción Nos centraremos en los conceptos matemáticos que permiten describir : el espacio los objetos que residen en él sus posiciones los movimientos de los objetos dentro del espacio  2002 J.C.Dürsteler - UPF- IUA

6  2002 J.C.Dürsteler - UPF- IUAEspacio Euclídeo El espacio euclídeo es el espacio determinado por la geometría euclídea: Axioma fundamental de Euclides: Por un punto exterior a una recta puede trazarse una y sólo una recta paralela ella. Las propiedades del espacio euclídeo se corresponden con las que percibimos en el espacio que nos circunda a escala local. Los otros axiomas de Euclides Una recta queda determinada por 2 puntos. Cualquier segmento se puede considerar parte de una línea infinita Es posible construir un circulo de radio cualquiera y con centro en cualquier punto. (La distancia pertenece a R.) Si dos líneas se cortan formando ángulos congruentes, cada ángulo es congruente con cualquier otro formado de la misma forma. Angulos congruentes son ángulos que tienen el mismo valor, los tres ángulos de un triángulo equilátero son congruentes, los ángulos de triángulos semejantes son congruentes.  2002 J.C.Dürsteler - UPF- IUA

7 Geometrías no EuclídeasGeometría hiperbólica. Se desarrolla sobre el plano hiperbólico que es equivalente topológicamente a una semiesfera. Los puntos del infinito son equivalentes a los del círculo máximo de la semiesfera. En un espacio hiperbólico se pueden trazar al menos dos rectas paralelas a una dada por un punto exterior a la misma  2002 J.C.Dürsteler - UPF- IUA

8 Geometría Hiperbólica 2002 J.C.Dürsteler - UPF- IUA

9 Geometrías no EuclídeasGeometría elíptica. En el plano elíptico todos los puntos se consideran equivalentes a los del infinito Todos las rectas se cortan en un punto Por tanto no puede trazarse ninguna recta paralela a una dada  No existen las rectas paralelas.  2002 J.C.Dürsteler - UPF- IUA

10 Sistemas referencialesUn sistema referencial es un sistema que permite describir la situación de un punto en el espacio. Existen múltiples sistemas de coordenadas. Cartesianas Polares Cilíndricas Esféricas...  2002 J.C.Dürsteler - UPF- IUA

11 Sistemas referencialesCartesianas Ejes de coordenadas para representar las posiciones de los puntos dentro del espacio. Coordenadas de un punto P son las distancias que hay entre los ejes coordenados y las proyecciones del punto sobre cada plano coordenado (x,y,z). En 2D se llama par ordenado (x,y) X Y Z z x y  2002 J.C.Dürsteler - UPF- IUA

12  2002 J.C.Dürsteler - UPF- IUACoordenadas polares En coordenadas polares: radio-vector r que une el origen de coordenadas y el punto ángulo  que subtiende r con el eje que se toma como origen de ángulos. r q  2002 J.C.Dürsteler - UPF- IUA

13  2002 J.C.Dürsteler - UPF- IUAMagnitudes escalares Un escalar es una magnitud que se puede describir mediante un sólo valor. Entre los escalares se pueden definir una serie de operaciones como la suma, diferencia, multiplicación, etc.  2002 J.C.Dürsteler - UPF- IUA

14 Magnitudes vectorialesLas magnitudes que se caracterizan por una dirección y una magnitud. Se representan mediante vectores.  Gráficamente se representa como un segmento cuya longitud indica la magnitud y su orientación la dirección del mismo. Cualquier segmento con la misma orientación y longitud describe el mismo vector. Se toma el vector con origen en el de coordenadas como representante de su clase. Operaciones: suma y diferencia vectorial, el producto de un vector por un escalar, el producto escalar de dos vectores y producto vectorial de dos vectores.  2002 J.C.Dürsteler - UPF- IUA

15 Operaciones con vectoresj k A B C  2002 J.C.Dürsteler - UPF- IUA

16 Operaciones con vectoresj k A B C C es la normal al plano AB  2002 J.C.Dürsteler - UPF- IUA

17 Operaciones con vectoresj k Útil para encontrar el ángulo entre dos vectores A q B c c es la proyección de A sobre B  2002 J.C.Dürsteler - UPF- IUA

18 Representación matricialVector (x,y) 2D Vector fila: matriz de 1 fila y 2 columnas Vector columna: matriz de 2 filas y 1 columna En 3D Vector fila Vector columna  2002 J.C.Dürsteler - UPF- IUA

19 Representación matricialUna matriz es la notación abreviada del conjunto de las transformaciones lineales sobre un espacio vectorial Vn(R) se puede considerar como una tabla de valores:  2002 J.C.Dürsteler - UPF- IUA

20  2002 J.C.Dürsteler - UPF- IUATransformaciones 2D El corazón de todo paquete gráfico es el kernel de transformaciones geométricas Traslación Escalado Cizallamiento Reflexión Rotación y la concatenación de cualquiera de ellas.  2002 J.C.Dürsteler - UPF- IUA

21  2002 J.C.Dürsteler - UPF- IUATransformaciones 2D Traslación Transformación que sitúa un punto (x,y) del plano en una nueva posición (x',y'). Se consigue añadiendo unas ciertas cantidades dx y dy dx representa cuántas unidades hemos trasladado el punto sobre el eje x dy representa lo mismo sobre el eje y  2002 J.C.Dürsteler - UPF- IUA

22  2002 J.C.Dürsteler - UPF- IUATransformaciones 2D En notación matricial  2002 J.C.Dürsteler - UPF- IUA

23  2002 J.C.Dürsteler - UPF- IUATransformaciones 2D Escalado Consiste en multiplicar por un factor (agrandar o disminuir) las coordenadas del punto. El factor puede ser diferente para cada una de ellas.  2002 J.C.Dürsteler - UPF- IUA

24  2002 J.C.Dürsteler - UPF- IUAEscalado En forma matricial  2002 J.C.Dürsteler - UPF- IUA

25  2002 J.C.Dürsteler - UPF- IUACizallamiento Desplaza un punto en la dirección de uno de los ejes un espacio proporcional a la distancia del punto al origen según otro de los ejes. Los puntos con una coordenada mayor resultan más desplazados que aquellos que la tienen menor.  El cizallamiento de x respecto de y es  2002 J.C.Dürsteler - UPF- IUA

26  2002 J.C.Dürsteler - UPF- IUARotación  2002 J.C.Dürsteler - UPF- IUA

27 Coordenadas HomogéneasEn forma abreviada las principales transformaciones son conviene que todas sean de la misma forma para poder operar de una forma homogénea  2002 J.C.Dürsteler - UPF- IUA

28 Coordenadas homogéneasEl concepto de coordenadas homogéneas busca una notación matricial que integre todas las transformaciones en una sola matriz. Ello permite realizar las rotaciones, escalado, etc. respecto a otros puntos que no sean el origen mediante operaciones matriciales simples. En una matriz de 2x2 esto no es posible.  2002 J.C.Dürsteler - UPF- IUA

29 Coordenadas homogéneasLas coordenadas homogéneas de (x, y) son (x', y', h), donde x = x'/h y = y'/h h no puede ser 0. Para un punto concreto del plano existen infinitas representaciones en coordenadas homogéneas (4, 5) se puede representar como (8, 10, 2) (4, 5, 1) (12, 15, 3)  2002 J.C.Dürsteler - UPF- IUA

30 Coordenadas homogéneasUn conjunto preferido para representar en coordenadas homogéneas es el conjunto (x, y, 1) o, como vector Las matrices de transformación son ahora de 3x3  2002 J.C.Dürsteler - UPF- IUA

31 Traslación en coordenadas homogéneasLas traslaciones quedan y en forma abreviada El escalado es y en forma abreviada  2002 J.C.Dürsteler - UPF- IUA

32 Transformaciones en coordenadas homogéneasEl cizallamiento respecto a x y en forma abreviada La rotación y en forma abreviada  2002 J.C.Dürsteler - UPF- IUA

33 Concatenación de transformacionesLa aplicación consecutiva de transformaciones geométricas se denomina concatenación El resultado es otra transformación geométrica equivalente. En notación matricial equivale al producto de matrices  2002 J.C.Dürsteler - UPF- IUA

34 Concatenación de transformacionesPropiedades de las operaciones con matrices cuadradas Adición Asociativa (A+B)+C=A+(B+C) Conmutativa A + B = B + A Multiplicación Asociativa (A·B)·C = A·(B·C) NO conmutativa A·B ‡ B·A en general Distributiva con respecto a la adición por ambos lados A·(B+C) = A·B+B·C (B+C)·A = B·A+C·A A·B=0 no implica necesariamente A=0 o B=0 A·B=A·C no implica necesariamente B=C  2002 J.C.Dürsteler - UPF- IUA

35 Propiedades de las Operaciones con Matrices 2002 J.C.Dürsteler - UPF- IUA

36 Propiedades de las Operaciones con Matrices 2002 J.C.Dürsteler - UPF- IUA

37 Concatenación de TraslacionesSupongamos que realizamos 2 traslaciones consecutivas. Y nos queda realizar el producto matricial  2002 J.C.Dürsteler - UPF- IUA

38 Concatenación de EscaladosCabría esperar que la concatenación de escalados fuera multiplicativa Y nos queda realizar el producto matricial  2002 J.C.Dürsteler - UPF- IUA

39 Concatenación de RotacionesCabría esperar que la concatenación de rotaciones fuera aditiva Y nos queda realizar el producto matricial  2002 J.C.Dürsteler - UPF- IUA

40 Concatenación de Rotaciones 2002 J.C.Dürsteler - UPF- IUA

41  2002 J.C.Dürsteler - UPF- IUAEjemplo Rotar la figura respecto de P, un ángulo q q P(x,y) P  2002 J.C.Dürsteler - UPF- IUA

42  2002 J.C.Dürsteler - UPF- IUAEjemplo Rotación respecto a un punto fuera del origen => Traslación al origen Rotación Traslación al punto P P P  2002 J.C.Dürsteler - UPF- IUA

43  2002 J.C.Dürsteler - UPF- IUAWindow to Viewport Window Mundo Coordenadas del mundo m, cm, etc ¿Cómo transformarlas en coordenadas del dispositivo? Posibilidades: Dejar la responsabilidad al programador Especificar una región rectangular en el mundo Window y su homologa en el dispositivo Viewport Viewport Dispositivo  2002 J.C.Dürsteler - UPF- IUA

44  2002 J.C.Dürsteler - UPF- IUAWindow to Viewport La transformación se aplica a todas las primitivas en coordenadas del mundo. Se pueden especificar diferentes viewports dentro de la pantalla ¿Cual es la transformación? Viewport Dispositivo Viewport Dispositivo Window Mundo Window Mundo  2002 J.C.Dürsteler - UPF- IUA

45  2002 J.C.Dürsteler - UPF- IUAWindow-Viewport imax, jmax xmin, ymin xmax, ymax imin, jmin  2002 J.C.Dürsteler - UPF- IUA

46  2002 J.C.Dürsteler - UPF- IUAWindow-Viewport  2002 J.C.Dürsteler - UPF- IUA

47  2002 J.C.Dürsteler - UPF- IUAWindow-Viewport Window Mundo Muchos paquetes combinan Transformación w-v Recortado. Viewport Dispositivo  2002 J.C.Dürsteler - UPF- IUA

48 Coordenadas Normalizadas del DispositivoNDC Normalized Device Coordinates Sistema independiente de dispositivo xmin=0, ymin=0 xmax=1, ymax=1 Permite realizar los cálculos sin tener en cuenta la resolución del dispositivo. DC Coordenadas del dispositivo Enteras, resolucion en x y en y  2002 J.C.Dürsteler - UPF- IUA

49  2002 J.C.Dürsteler - UPF- IUAEficiencia La matriz 2D más general es una matriz compuesta de la forma De las 6 multiplicaciones y 6 sumas, solo necesitamos  2002 J.C.Dürsteler - UPF- IUA

50  2002 J.C.Dürsteler - UPF- IUAEficiencia Vistas incrementales (rotación). Si q es pequeño, cos(q) = 1 Problema: Para ángulos totales se acumula el error. Mejor aproximación  2002 J.C.Dürsteler - UPF- IUA

51  2002 J.C.Dürsteler - UPF- IUAConvención de signos Convención de signos para las rotaciones Sistema dextrógiro Un giro de 90º en sentido antihorario transforma un eje en otro, visto desde la parte positiva del tercero. Sistema levógiro (al revés) Atención: No todos los textos usan la misma convención. Matemáticas dextrógiro 3D levógiro Conversión: Reflexión respecto al plano xy Z X Y Levogiro Z X Y Dextrogiro  2002 J.C.Dürsteler - UPF- IUA

52  2002 J.C.Dürsteler - UPF- IUATransformaciones 3D Traslaciones Escalado Cizallamiento  2002 J.C.Dürsteler - UPF- IUA

53  2002 J.C.Dürsteler - UPF- IUATransformaciones 3D Rotación alrededor de x Rotación alrededor de z Rotación alrededor de y Reflexión respecto del plano xy (z->-z)  2002 J.C.Dürsteler - UPF- IUA

54 Transformaciones / Cambio de Sistema CoordenadoTransformaciones Geométricas Cambio de un conjunto de coordenadas a otro en un mismo sistema. También puede pensarse como un cambio entre sistemas de coordenadas. Aproximación útil para múltiples objetos cada uno definido en su propio sistema. Sea la transformación que pasa del sistema j al i. P(i) es la representación de P en el sistema i, P(j) es la representación de P en el sistema j P(k) es la representación de P en el sistema k  2002 J.C.Dürsteler - UPF- IUA

55 Transformaciones / Cambio de Sistema CoordenadoLa aproximación consiste en considerar cada cuerpo en su propio sistema de coordenadas y transformarlo apropiadamente Hay que notar que  2002 J.C.Dürsteler - UPF- IUA

56 Composición de transformacionesComo en 2D se resume en la multiplicación de matrices. Es la herramienta básica a la hora de posicionar los objetos establecer sus orientaciones animar los movimientos crear objetos compuestos  2002 J.C.Dürsteler - UPF- IUA

57 Rotación alrededor de un eje arbitrarioy x z d ux uz uy a b  2002 J.C.Dürsteler - UPF- IUA

58 Rotación alrededor de un eje arbitrario 2002 J.C.Dürsteler - UPF- IUA

59 Rotación alrededor de un eje arbitrario 2002 J.C.Dürsteler - UPF- IUA

60  2002 J.C.Dürsteler - UPF- IUARotación en OpenGL glRotate*(angulo, ux, uy, uz) angulo en grados -1 < ux, uy, uz < 1  2002 J.C.Dürsteler - UPF- IUA

61  2002 J.C.Dürsteler - UPF- IUAHardware de soporte La realización de transformaciones geométricas es un cuello de botella para las aplicaciones gráficas interactivas. Para cada imagen generada, se han de trasladar y rotar una gran cantidad de vértices y finalmente se han de proyectar sobre la pantalla. Muchas implementaciones de hardware contienen soporte para realizar este tipo de transformaciones que va desde soporte a operaciones con vectores hasta el de todo tipo de operaciones con y entre matrices.  2002 J.C.Dürsteler - UPF- IUA

62  2002 J.C.Dürsteler - UPF- IUAHardware de soporte Cualquier numero de traslaciones y rotaciones se pueden concatenar para obtener una transformación genérica de la forma  2002 J.C.Dürsteler - UPF- IUA

63  2002 J.C.Dürsteler - UPF- IUAHardware de soporte  2002 J.C.Dürsteler - UPF- IUA

64  2002 J.C.Dürsteler - UPF- IUAHardware de soporte Las instrucciones MMX que se introdujeron con los procesadores Intel y las 3D Now de los procesadores AMD, aprovechan esta forma de paralelismo Son capaces de ejecutar una operación matricial en sólo tres instrucciones, aparte de las necesarias para mover y empaquetar los argumentos. 3D Now opera con números en coma flotante MMX con numeros enteros  2002 J.C.Dürsteler - UPF- IUA

65  2002 J.C.Dürsteler - UPF- IUAOpenGL glPushMatrix y glPopMatrix Permiten crear modelos jerárquicos sin tener que recurrir a la multiplicación por la inversa  2002 J.C.Dürsteler - UPF- IUA