Professional Documents
Culture Documents
U3 Informe - Representación y Visualización de Objetos en 3D
U3 Informe - Representación y Visualización de Objetos en 3D
en 3D
Materia: Graficación
Equipo 4:
Fecha: 21/02/2022
Grupo: IS1
2
Índice
• Introducción……………………………………………………………………….página4
• Representación gráfica…………………………………………………………….página 6
• Perspectiva………………………………………….…………...……………..….página 7
• Visualización de objetos……….………………………………………………….página 8
• Proyecciones………………………………………………………………………página 8
• Transformaciones tridimensionales…...…………..…………….………...…...…página 12
• Método de translación……………………………………………………………página13
• Método de rotación………………………………………………………………página 17
• Sesgado..…..…………………………………………….………………………. página 19
• Conclusión..………………………………………………..……………..………página 20
• Codificación……………………………………………………………………...página 21
• Bibliografía…………………………………..………….………………………. página 32
Índice de ilustraciones
• Ilustración 1…………….…………………………………………………………página 5
• Ilustración 2…………….…………………………………………………………página 7
• Ilustración 3…………….…………………………………………………………página 7
• Ilustración 4…………….…………………………………………………………página 9
• Ilustración 5…………….…………………………………………………………página 9
• Ilustración 6…………….……………………………………………………...…página 10
• Ilustración 7…………….………………………………………………….…..…página 10
• Ilustración 8…………….………………………………………………….…......página 10
• Ilustración 9…………….……………………………………………………...…página 11
• Ilustración 10………….…………………………………………………..…...…página 14
• Ilustración 11.………….……………………………………………………....…página 14
• Ilustración 12………….…………………………………………………..…...…página 16
• Ilustración 13………….…………………………………………………….....…página 16
• Ilustración 14…………………………………………………………...……...…página 18
• Ilustración 15………….……………………………………..………………...…página 18
• Ilustración 16………….………………………………………………..……...…página 19
• Ilustración 17………….…………………………………………………..…...…página 19
Introducción
dichos gráficos, o al campo de estudio de los métodos y tecnologías relacionados con los gráficos
3D.
Representar objetos en tres dimensiones en un plano para que proporcionen una sensación de
volumen se llama perspectiva. Los objetos se representan en tres ejes XYZ. En el eje Z,
que den una sensación de escala, se denomina perspectiva. Los objetos se representan en tres ejes
XYZ. La altura se representa en el eje Z. El ancho se indica en el eje "y" y la longitud se indica
en el eje "x".
El modelo 3D se puede "ver" de dos maneras diferentes. Desde un punto de vista técnico,
tridimensional.
Representación gráfica }
La representación de objetos en tres dimensiones sobre una superficie plana para que
largo de los tres ejes XYZ. El eje z representa la altura. El eje y representa el ancho y el
caballería y la cónica.
Perspectiva
Visualización de objetos
normalmente la elevación del terreno, es útil para interpretar los datos mostrados.
En este caso nos ocuparemos de proyecciones espaciales a planares (3D a 2D). La proyección
de objetos 3D estará determinada por la intersección de líneas que van desde el centro de la
proyección o el ojo hasta cada punto del objeto. Estos son algunos de los usos más comunes.
Proyecciones
En tres dimensiones la situación es un poco más complicada, ya que ahora tenemos varias
alternativas de cómo crear las vistas. Podemos ver una escena desde el frente, desde arriba o
desde atrás.
La visualizacion en nuestro caso significa información del mundo real en la pantalla. Las
En tres dimensiones la situación es un poco más complicada, ya que ahora tenemos varias
alternativas de cómo crear las vistas. Podemos ver una escena desde el frente, desde arriba o
desde atrás. También podemos crear una pantalla de lo que observaríamos si estuviéramos en
medio de un grupo de objetos. Además, las descripciones de los objetos 3D deben mostrarse
Redondos.
• Poliedro convexo: Todos sus lados se pueden apoyar en el plano. Ahora, los poliedros
• Poliedros regulares: Son aquellos que cuyas caras con polígonos regulares iguales y ademas
• Poliedros irregulares: Si alguna de sus caras son polígonos de forma distinta, son poliedros
irregulares.
Las ecuaciones de objetos con bordes curvos se pueden expresar en forma paramétrica o no
polígonos.
La necesidad de representar curvas y superficies surge del modelado de objetos "desde cero"
modelo matemático previo del objeto, y el objeto se aproxima a “partes” de planos, formas y
otros métodos de modelado simples, que requieren que los puntos del modelo estén cerca de
La representación no paramétrica de una curva (por ejemplo, en dos dimensiones) puede ser
Transformaciones tridimensionales
Determina las posiciones en la escena utilizando las coordenadas trigonométricas en los ejes
• En el caso 2D teníamos inicialmente matrices 2x2, pero eso sólo nos permitía operaciones
del tipo:
• Por tanto, en 3-D, aplicando la misma regla, habrá que pasar a matrices 4x4. de
• Método de translación
a un objeto para cambiar su posición a lo largo de una ruta de línea de una dirección de
coordenadas a otra.
o Se traslada un punto de la posición coordenada (X, Y) a una nueva posición (x’, y’)
= y + Ty.
o El par de distancia de traslación (Tx, Ty) se denomina también vector de traslación o bien
vector de cambio.
o Los objetos trazados con curvas se trasladan cambiando las coordenadas definidoras del
La distancia recorrida se puede especificar como cualquier número real (positivo, negativo o
0). Si un objeto excede el límite de ancho en las coordenadas del dispositivo, el sistema puede
devolver un mensaje de error, eliminar partes del objeto que exceden el límite de ancho o
• Método de escalación
referencia. Para definir este proceso, se necesitan dos factores de escala, Sx y Sy, en las
cambia el tamaño del objeto y al mismo tiempo mueve el objeto a una nueva ubicación.
Sy.
objetos.
• Método de rotación
transformación de rotación se puede colocar en cualquier lugar dentro o fuera del límite
exterior del objeto, y el efecto de la rotación es hacer que el objeto gire alrededor de este
punto interior.
Para rotar un objeto (bidimensional en este caso), debe especificar cuántos grados debe
rotar la forma. Para hacer esto, sin ningún tipo de transformación en la forma, la entidad
Los puntos también pueden ser rotados un ángulo θ con respecto al origen en forma
matricial
o Cualquier valor numérico positivo puede asignarse a los factores de escalación Sx y Sy.
objetos.
Ilustración 14. Matrices de ejemplo para el Ilustración 15. Gráfica de ejemplo de la rotación
método de rotación
• Sesgado
objeto original cuando se aplica esta transformación. Hay dos tipos de sesgo: sesgo
o Sesgo horizontal. Las coordenadas adyacentes al eje x permanecen fijas, los valores de y
no cambian.
o Sesgo vertical. Las coordenadas adyacentes al eje y permanecen fijas, los valores de x no
cambian.
Conclusión
presentación de los objetos, haciéndonos ver el uso de su plan y tres ideas principales. Hemos
visto sus diversos cambios y visualmente para cada uno de ellos. En la visualización hemos visto
cada una de las proyecciones de estos gráficos y las diferencias entre ellos, así como el método
de su presentación.
El módulo terminó con el tema de las líneas y curvas necesarias en los gráficos 3D, ya que le dan
Estudiar este tema nos enseñó mucho sobre los conceptos básicos de los gráficos 3D y vimos
cómo se pueden crear imágenes 3D a partir de imágenes bidimensionales. También vemos que el
superficies.
Y especialmente hoy en día, algunas tecnologías han cambiado mucho con los gráficos 3D
porque podemos ver que es muy utilizado para visuales, llegando al máximo en diseño,
Codificación
A continuación, vamos a mostrar los códigos correspondientes a lo que seria el proyecto de esta
unidad:
#include <windows.h>
#include <GL/glut.h>
#include <stdlib.h>
float v=1;
float r=1;
float g=1;
float b=1;
bool lado=false;
{ glRasterPos2f(PosX,PosY);
{ glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
//glOrtho(-45,45,-45,45,-45,45);
glOrtho(-15,15,-15,15,-15,15);
glMatrixMode(GL_MODELVIEW);
void Inicializa()
{ glEnable(GL_DEPTH_TEST); }
void Dibuja()
{ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glBegin( GL_LINES);
glEnd();
rotar2+=v;
if (rotar2>=360.0) rotar2=0.0;
glColor3f(r, g, b);
//Esfera
glPushMatrix();
glRotatef(0, 0.1,1.0,1.0);
glScalef(escala,escala,escala);
glutWireSphere(2.3,36.0,19);
glPopMatrix();
escala+=suma4;
if(escala>1.7){suma4*=-1;}
if(escala<0.7){suma4*=-1;}
//Cono
glPushMatrix();
if(lado==true){glScalef(sesgado,1.0,1.0);}if(lado==false){glScalef(1.0,sesgado,1.0);}
glRotatef(130, 0.1,1.0,1.0);
glutWireCone(2.4,4.0, 10.0,numerodealambres);
glPopMatrix();
if(contador==2)
switch(lado)
sesgado+=suma5;
if(sesgado>1.0){suma5*=-1;contador+=1;contador3+=1;}
if(sesgado<0.0){suma5*=-1;contador+=1;contador3+=1;}
//Toroide
glPushMatrix();
glRotatef(1.0, 0.1,1.0,1.0);
glScalef(0.8,0.8,0.8);
glPopMatrix();
translacion+=suma;
if(translacion>9){suma*=-1;}
if(translacion<7){suma*=-1;}
if(translacion==7||translacion==9){suma=0;}
translacion3+=suma3;
if(translacion3>1){suma3*=-1;}
if(translacion3<-1){suma3*=-1;}
if(translacion3==7||translacion3==9){suma3=0;}
//Cubo
glPushMatrix();
glRotatef(rotar2, 0.1,1.0,1.0);
glutWireCube(3.5);
glPopMatrix();
//Otro
glPushMatrix();
switch(contador3)
glutWireTeapot(2.8);
if(contador3>5){contador3=0;}
glPopMatrix();
cout<<contador3<<endl;
// glutSolidTorus();
rotar+=0.1;
if (rotar>=360.0) rotar=0.0;
escala2+=0.001;
if (escala2>=1.0) escala2=0.1;
//TEXTO
glColor3f(1.0,0.0,0.0); DibujaTexto(-1,3,"Toroide");
glColor3f(1.0,0.0,0.0); DibujaTexto(-1.7,2,"translacion");
glColor3f(1.0,0.0,0.0); DibujaTexto(9.4,3,"Cono");
glColor3f(1.0,0.0,0.0); DibujaTexto(9,2,"sesgado");
glColor3f(1.0,0.0,0.0); DibujaTexto(-11,3,"Esfera");
glColor3f(1.0,0.0,0.0); DibujaTexto(-11.8,2,"escalamiento");
glColor3f(1.0,0.0,0.0); DibujaTexto(-6.3,-11,"Tetera");
glColor3f(1.0,0.0,0.0); DibujaTexto(-7,-12,"perspectiva");
glColor3f(1.0,0.0,0.0); DibujaTexto(5,-11,"Cubo");
glColor3f(1.0,0.0,0.0); DibujaTexto(4.5,-12,"Rotacion");
glutPostRedisplay();
glutSwapBuffers();
{ switch ( key ) {
if(numerodealambres>3){numerodealambres-=1;}
break;
numerodealambres+=1;
break;
}}
void keyboard(unsigned char key, int x, int y){ //recibe la tecla y posición x, y
switch (key){
v+=0.05;
break;
v-=0.05;
break;
glutKeyboardFunc(keyboard);
glutMainLoop();
return 0; }
break;
break;
break;
glutInit(&argc, argv);
glutInitWindowSize(900,700);
Inicializa();
glutDisplayFunc(Dibuja);
glutKeyboardFunc(teclaOprimida);
glutReshapeFunc (RedimensionaPantalla);
Bibliotecas
https://yzn1808.wordpress.com/2015/05/20/unidad-3-graficacion-en-3d/
https://lizethazucenavazquezvazquez.blogspot.com/
http://graphinggerlpzgtz.blogspot.com/2013/10/unidad-3.html
• SEDUC. (2010). ¿Cuáles son las figuras tridimensionales para niños? Educación
Campeche. https://findanyanswer.com/cules-son-las-figuras-tridimensionales-
para-nios
https://yzn1808.wordpress.com/2015/05/20/unidad-3-graficacion-en-3d/
http://graphinggerlpzgtz.blogspot.com/2013/10/unidad-3.html
https://lizethazucenavazquezvazquez.blogspot.com/2019/10/conceptos-
traslacionrotacionescalacions.html
http://marazama.blogspot.com/2013/10/conclusion-unidad-3.html