Upload
erick-osorio
View
216
Download
3
Embed Size (px)
DESCRIPTION
Previo computación gráfica. FI UNAM
Citation preview
Universidad Autónoma de México
Facultad de Ingeniería
Laboratorio de Computación Gráfica
Previo 4, Práctica 3
Osorio Merlos Erick Victor Gabriel
Grupo Lab: 6
Práctica 4
Transformaciones geométricas.Objetivo: El alumno utilizará las funciones para transformaciones geométricas en OpenGL.
Cuestionario Previo:1. ¿Qué es una transformación geométrica?
Una transformación geométrica, o simplemente una transformación, es una aplicación que hacecorresponder a cada punto del plano otro punto del plano. Como consecuencia, las figuras setransforman en otras figuras.
Las transformaciones más usuales son las traslaciones, rotaciones, simetrías y las homotecias.Todas ellas mantienen la forma de las figuras, pero pueden disminuir el tamaño y cambiar la figura deposición.
Traslación
Traslación, de vector , es una transformacióngeométrica que hace corresponder a cada punto P otro
punto Pð tal que .
Las traslaciones son movimientos directos, esdecir, mantienen la forma y el tamaño de las figuras, a las
cuales deslizan según el vector .
Rotaciones
Rotación, de centro O y ángulo á, es unatransformación geométrica que hace corresponder a
cada punto P otro punto Pð tal que: y
Homotecia
Homotecia: Formación de figuras semejantes en las que los puntos correspondientes estánalineados dos a dos con respecto a otro punto fijo.
Una homotecia de centro O y derazón a , lleva a toda recta que pasa por O así misma, y a una recta L que no pasa por O,a una recta L´, paralela a L.
Hemos de tener en cuenta que loslados aumentan si a>0, disminuyen si a<0 yse mantienen si a=1. Además, si a=1decimos que los triángulos son congruentes,es decir, si los lados correspondientes soniguales y sus ángulos correspondientes soniguales.
2. ¿Cuáles son las transformaciones geométricas básicas en tres dimensiones y sus matricesasociadas?
Escalamiento 3D
El escalamiento implica el cambio de tamaño de un poliedro, donde cada punto p = (x1, x2, x3)es transformado por la multiplicación de tres factores de escalamiento: s1, s2 y s3 a lo largo de los ejesX1, X2 y X3 respectivamente, de esta forma, las coordenadas del nuevo punto p' = (x1' , x2' , x3') seobtienen como:
Sea s = (s1, s2, s3) el vector de factores de escalamiento, y S(s) la matriz de escalamiento, encoordenadas homogéneas el escalamiento de un punto p en 3D se puede expresar como el productomatricial p' = p S(s) , es decir:⋅
La Figura siguiente muestra el efecto de escalamiento de una figura con s1 = 2, s2 = 2.5 y s3 = 1.5.
Traslación 3D
La traslación permite desplazar un objeto a lo largo de sus dimensiones, como resultado seobtiene un cambio de posición.
La traslación 3D implica el desplazamiento de un poliedro, donde cada punto p = (x1 , x2 , x3) estrasladado d1 unidades en el eje X1 , d2 unidades en el eje X2 y d3 unidades en el eje X 3, de esta forma,las coordenadas del nuevo punto p' = (x1' , x2' , x3') se obtienen como:
x1' = x1 + d1
x2' = x2 + d2
x3' = x3 + d3
Sea d = (d1 , d2 , d3) el vector de distancias, y T(d) la matriz de traslación, en coordenadas homogéneasla traslación de un punto p en 3D se puede expresar como el producto matricial p' = p T(d)⋅ , es decir:
La Figura siguiente muestra el efecto de traslación de una figura con d1 = 2, d2 = 0 y d3 = 2.
Rotación 3D
La rotación permite girar un objeto sobre un eje de rotación, dado un valor de ángulo derotación θ y su dirección.
En el espacio 3D para hacer rotar un objeto se necesitan dos puntos no coincidentes quedeterminan un segmento de recta, cuya línea de soporte define un eje lineal (uni-dimensional) derotación.
Las rotaciones principales 3D, son aquellas cuando el eje de rotación se encuentra sobre algunode los tres ejes principales: X1, X2 o X3, las rotaciones sobre cualquier otro eje arbitrario son llamadasrotaciones generales 3D. Se recuerda que inicialmente, se analizan las rotaciones principales.
Por convención, los ángulos de rotación positivos producen rotaciones en contra de lasmanecillas del reloj sobre el eje de rotación, esto es si se observa el giro desde la parte positiva del ejehacia el origen. Otra forma de determinar la dirección de un giro positivo es mediante la regla de lamano derecha, que dice que: “Si se coloca el dedo pulgar de la mano derecha sobre el eje de rotaciónapuntando hacia la parte positiva de dicho eje, el giro natural del resto de los dedos indica la direcciónpositiva del giro”.
Para entender el concepto de rotación en 3D como una extensión de la rotación 2D, hay querecordar que la rotación 2D es el giro sobre el eje de rotación, que es perpendicular al plano X1X2, elcual en 3D corresponde al eje X3, entonces se tiene la primera de las rotaciones principales.
De esta forma, por cada punto p = (x1 , x2 , x3) dado un ángulo θ, puede ser rotado sobre el ejeX3 en sentido contrario a las manecillas del reloj, obteniendo las coordenadas del nuevo punto
p' = (x1' , x2' , x3'), quedando la coordenada x3 sin cambio, entonces, se extienden las formulas para larotación 2D:
Sea R3(θ) la matriz de rotación alrededor del eje X3, en coordenadas homogéneas la rotación de unpunto p alrededor de dicho eje, se puede expresar como el producto matricial p' = p R⋅ 3(θ) , es decir:
Las ecuaciones para las rotaciones sobre el eje X1, y eje X2, pueden ser obtenidas mediante laspermutaciones cíclicas de los parámetros x1, x2, x3.
Para x1:
Para x2:
La Figura siguiente muestra el efecto de rotación sobre el eje X3 de una figura con θ = 20°.
Conclusión:
El tema me pareció muy interesante, sin embargo, debo confesar que la información en 2D parecebastante escueta con respecto a la del 3D, ya que para este último encontré la tesis de alguien en la quevenía bastante bien explicados estos temas. No viene el nombre del dueño de la tesis, pero me parecióun gran trabajo, al menos lo que leí.
La información sobre la rotación en 3D era bastante extensa, y aunque recorté muchainformación, debo decir que es un tema que me pareció complejo y largo. Espero que con lainformación que seleccioné sea suficente.
Fuentes:
http://catarina.udlap.mx/u_dl_a/tales/documentos/mcc/cruz_m_ia/capitulo3.pdf
https://es.wikipedia.org/wiki/Transformaci%C3%B3n_%28funci%C3%B3n%29
http://html.rincondelvago.com/transformaciones-geometricas.html
http://www.vitutor.com/geo/vec/c_1.html
Reporte Práctica 3.1. A las figuras que se crearon durante el desarrollo de la práctica 3, agregue otros dos elementos.Incluya una captura de pantalla mostrando todos los elementos del escenario.
2. Indique los valores que utilizó para posicionar los dos nuevos elementos en pantalla.
Utilicé las siguientes instrucciones para posicionar a los dos nuevos elementos:
// Prisma I
glTranslatef(1, 5, 0);
prisma();
// Prisma H
glTranslatef(-3, 2.5, 0);
prisma();
3. De un breve explicación de las diferencias entre una proyección ortogonal y una proyección enperspectiva.
La proyección ortogonal es como ver una parte de la imagen, como si tuviéramos un prismadesde el cual recortamos la imagen; en esta imagen no existe profundidad (o al menos no se aprecia).En la proyección en perspectiva se tiene un ángulo de visión, con lo cuál los objetos parecen tenerprofundidad; es una perspectiva más real.
4. De un comentario sobre el desarrollo de la práctica y los problemas que enfrentó en la mismapara lograr cubrir el objetivo de la práctica (ver previo práctica 3 para objetivo).
Realmente no tuve problemas para completarla. Quizá la parte más complicada fue lo detraducir las coordenadas de los objetos que ponía el profesor en el pizarrón, a desplazamientosrelativos.