Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Estela y naye
1. COLEGIO DE ESTUDIOS CIENTIFICOS Y
TECNOLOGICOS DEL ESTADO DE
MEXICO
Nombre del profesor: Rene Domínguez Escalona
Nombre de los integrantes:
• Estela Elizabeth Mendoza González
• Nayely Sugey Mejía García
Trabajo: Manual de practicas
Grado: 3° Semestre
Grupo: 303
Materia: Utilización de software de diseño para el manejo de
gráficos.
1
2. INDICE
Introduccion sobre Open_GL……………………..3
Código del movimiento circular…………………..8
Tablero de ajedrez……………………………………9
Estrella…………………………………………………..17
Cubo con lineas……………………………………20
Cubo delineado…………………………………24
Muñeco con triángulos……………………………29
Casita…………………………………………………..37
Oso……………………………………………………..55
Cubo con cubitos…………………………………..58
Muñeco con formas………………………………..62
Animación circulo rotando……………………….68
Animación sistema solar……………………………71
Movimiento ocho…………………………………...74
Piramide………………………………………77
Semáforo……………………………………………..80
Nombre en 3D………………………………………85
Cubo en 3D………………………………………….91
2
3. INVESTIGACION SOBRE
Open_GL:
¿Qué es Open_GL?
R= Es una especificación estándar que define una API
Multilenguaje y multiplataforma para escribir aplicaciones que
produzcan gráficos en 2D y 3D.
¿Cuáles son las primitivas geométricas?
R=Formas geométricas por su básica constitución en las partes
que la conforman se conoces también con el nombre de
primitivas geométricas cuyas formas son:
GL_POINTS Dibuja puntos.
GL_LINES Dibuja líneas no conectadas.
GL_TRIANGLES Dibuja una serie de triángulos.
GL_QUADS Dibuja una serie de cuadriláteros.
GL_TRIANGLE_FAN Dibuja triángulos pegados unos con otros en
forma de abanico.
¿Cómo se crea una ventana en Open:GL?
R=Los paso necesarios para crear una ventana en Open:GL, los
podemos clasificar como sigue:
• Creamos una ventana
• Establecemos de manera de visión y la perspectiva
• Inicializamos la variable del estado de Open_GL
3
4. • Crea Ventana GL: Se puede considerar como la función
principal. Crea una ventana de Windows, selecciona el
Formato de pixel, crea su RC y DC y posteriormente llama
a las funciones siguientes para asignarle propiedades
de OpenGL.
• Elimina Ventana GL: Libera todos los recursos usados por la
ventana.
• Inicializa Escena GL: Establece el marco de visión
(Viewport) de la escena, así como la perspectiva que
vamos a Utilizar.
¿Qué es el GLVector?
R= En OpenGL los objetos los definimos como un conjunto
ordenado de vértices. Para especificar un vértice disponemos
del comando glVertex*(); void glVertex{234}{sifd} (TYPE coords);
Especifica un vértice para el uso en la descripción de un objeto
geométrico. El número de coordenadas puede ser de 2 (x,y), 3
(x,y,z) y 4 (x,y,z,w). Si se usa una versión en la que no se
especifica z o w, será entendido que a z se le asigna el valor 0 y
a w el valor 1.
¿Aplicaciones de Open_GL?
• Codificación del Color en modos RGBA (Rojo-Verde-Azul-
Alfa) o de color indexado.
4
5. • Visualización y Modelado que permite disponer objetos en
una escena tridimensional, mover nuestra cámara por el
espacio y seleccionar la posición ventajosa deseada para
visualizar la escena de composición.
• Mapeado de texturas que ayuda a traer realismo a
nuestros modelos por medio del dibujo de superficies
realistas en las caras de nuestros modelos poligonales
• La iluminación de materiales es una parte indispensable de
cualquier gráfico 3D. OpenGL provee de comandos para
calcular el color de cualquier punto dadas las propiedades
del material y las fuentes de luz en la habitación.
• El sombreado Gouraud es una técnica usada para aplicar
sombreados suaves a un objeto 3D y producir una sutil
diferencia de color por sus superficies.
• Efectos atmosféricos como la niebla, el humo y las neblinas
hacen que las imágenes producidas por ordenador sean
más realistas. Sin efectos atmosféricos las imágenes
aparecen a veces irrealmente nítidas y bien
definidas. Niebla es un término que en realidad describe
un algoritmo que simula neblinas, brumas, humo o polución
o simplemente el efecto del aire, añadiendo profundidad
a nuestras imágenes.
¿Cuáles son las tres librerías?
R=
• Glut.h
• Math-h
• Stdlib.h
5
6. ¿Qué funciones tienen las librerías?
R= Las librerías disponen de utilidades o funciones para entrada
o salida implementadas en el propio lenguaje, son utilizados
para el programador.
¿Cómo configurar Opengl en Dev c++?
R= OpenGL (Open Graphics Library): Es una API estándar para el
manejo de gráficos en 2 y 3 dimensiones independiente de la
plataforma. Es estructurado y está escrito en C. OpenGL tiene
funciones para renderizado en 2 y 3 dimensiones, rotación,
traslación, pintado, etc. Pero OpenGL NO provee métodos para
creación de ventanas manejo de dispositivos como teclado,
ratón, etc. OpeGL está definido en los archivos de cabecera y ,
los cuales están incluidos en la mayoría de compiladores.
* GLUT: (OpenGL Utility Toolkit): Ante la incapacidad de OpenGL
para crear controles gráficos como ventanas y manejar
dispositivos Mark Kilgard's desarrolló GLUT la cual es una librería
auxiliar a OpenGL que permite crear ventanas y manejar
dispositivos como el teclado y ratón y está diseñada para
integrarse completamente con OpenGL. Esta librería es
multiplataforma y tiene versiones para Windows, Linux y otros.
Así que para empezar a trabajar tenemos que bajar Dev-C++
de Aquí e instalarlo, este trae a OpenGL por defecto, pero para
además trabajar con GLUT necesitamos bajar el siguiente Dev-
Package de (elegimos glut.3.7.6+.DevPak), abrimos Dev-C++
vamos a Herramientas -> Package Manager, nos saldrá una
nueva ventana y daremos click en el botón Install,
seleccionamos el paquete y lo instalamos. Luego de esto ya
6
7. podremos ir a Nuevo Proyecto -> Multimedia -> glut y creamos
un nuevo proyecto. Este nos creará un demo del uso de glut
con OpenGL. Si lo compilamos y ejecutamos tendremos el
siguiente resultado:
CODIGO DEL MOVIMIENTO CIRCULAR:
• Primero haces un GLPlushMatrix, para guardar la matriz de
rotatraslacion.
• Luego haces un GLTranslate con las coordenadas de tu
zeppelín a continuación un GLRotate con sus ángulos.
• Luego lo dibujas.
• Por ultimo restauras la matriz.
•
GLPlushMatrix();
GLTranslate( posición del circulo);
GLRotate(rotación del circulo);
Circulo();
GLpopMatriz();
7
8. TABLERO DE AJEDREZ
Descripción: Lo que tenemos que hacer es un tablero de
ajedrez no importa los colores, este tablero debe de ser de 8x8.
Borrador:
8
9. Código:
void inicializa(void)
{
glClearColor(0.0,1.0,1.0,0.0); //color de fondo
glMatrixMode(GL_PROJECTION); //Modo de proyección
glLoadIdentity(); //Establece los parámetros de
proyección
gluOrtho2D(0.0, 1000.0, 0.0, 1000.0); //vista ortogonal
}
void dibuja(void) //función dibuja
{
glClear(GL_COLOR_BUFFER_BIT); //borra pantalla
glColor3f(0.0 ,0.0 ,1.0);
glPointSize(50);
glBegin (GL_POINTS);
glVertex2i(100,100);
glVertex2i(300,100);
9
23. CUBO DELINEADO
Descripción: Tenemos que realizar un cubo per que el contorno
se vea y debe de estar relleno de manera que se pueda
visualizar tres caras.
Borrador:
23
24. Código:
void dibuja(void) //función dibuja
{
glClear(GL_COLOR_BUFFER_BIT); //borra pantalla
glBegin(GL_QUADS);
// parte de frente
glColor3f(1.0,0.0,0.0);
glVertex2i(200,200);
glColor3f(1.0,0.0,0.0);
glVertex2i(400,200);
glColor3f(1.0,0.0,0.0);
glVertex2i(400,400);
glColor3f(1.0,0.0,0.0);
glVertex2i(200,400);
// parte de lado
glColor3f(0.0,1.0,0.0);
glVertex2i(400,200);
24
38. glColor3f(0.0,1.0,0.0);
glVertex2i(0,200);
glVertex2i(1000,200);
glVertex2i(1000,450);
glVertex2i(0,450);
// parte de la casa (anaranjado)
glColor3f(1.0,0.0,0.0);
glVertex2i(150,300);
glVertex2i(200,300);
glColor3f(1.0,1.0,0.0);
glVertex2i(200,600);
glVertex2i(150,600);
// parte de la casa (gris)
glColor3f(1.0,1.0,1.0);
glVertex2i(200,300);
glVertex2i(450,300);
glColor3f(1.0,1.0,1.0);
glVertex2i(450,600);
glVertex2i(200,600);
// parte de la casa (roja)
glColor3f(1.0,0.0,0.0);
glVertex2i(50,600);
38
39. glVertex2i(450,600);
glVertex2i(450,700);
glVertex2i(100,700);
// parte de la casa (anaranjada)
glColor3f(1.0,0.0,0.0);
glVertex2i(450,300);
glVertex2i(850,300);
glColor3f(1.0,1.0,0.0);
glVertex2i(850,800);
glVertex2i(450,800);
// parte de la casa1 (rosa)
glColor3f(1.0,0.0,1.0);
glVertex2i(550,300);
glVertex2i(600,300);
glVertex2i(600,800);
glVertex2i(550,800);
// parte de la casa2 (rosa)
glColor3f(1.0,0.0,1.0);
glVertex2i(700,300);
glVertex2i(750,300);
glVertex2i(750,800);
glVertex2i(700,800);
39
40. // parte de la casa3 (rosa)
glColor3f(1.0,0.0,0.0);
glVertex2i(450,600);
glVertex2i(850,600);
glVertex2i(850,650);
glVertex2i(450,650);
// parte de la casa (roja)
glColor3f(1.0,0.0,0.0);
glVertex2i(300,800);
glVertex2i(1000,800);
glVertex2i(900,900);
glVertex2i(400,900);
// parte de la casa (rosa)
glColor3f(1.0,0.0,1.0);
glVertex2i(550,150);
glVertex2i(750,150);
glVertex2i(750,300);
glVertex2i(550,300);
// puerta (blanca)
glColor3f(1.0,1.0,1.0);
glVertex2i(600,300);
glVertex2i(700,300);
40
55. Cubitos con cubos
Descripción: Tenemos que realizar un cubo echo por cubitos en
3D de manera que los cubitos sean el delineado para formar un
cubo mas grande.
Borrador:
Código:
void dibuja(void) //funcion dibuja
55
59. Muñeco con formas
Descripción: Tenemos que realizar un muñeco del cecytem con
todas las primitivas que hemos visto.
Borrador:
Código:
void dibuja(void) //funcion dibuja
59
60. {
glClear(GL_COLOR_BUFFER_BIT); //borra pantalla
glColor3f(1.0 , 0.0 , 0.0);
// triangulo de la cabeza
glBegin(GL_TRIANGLES);
glColor3f(0.0,0.0,1.0);
glVertex2i(250,750);
glColor3f(0.0,0.0,1.0);
glVertex2i(550,750);
glColor3f(0.0,0.0,1.0);
glVertex2i(400,850);
//triangulo de la cabeza 2
glColor3f(0.0,1.0,0.0);
glVertex2i(300,750);
glColor3f(0.0,1.0,0.0);
glVertex2i(500,750);
glColor3f(0.0,1.0,0.0);
glVertex2i(400,600);
//triangulo pequeño del cuerpo
glColor3f(0.0,0.0,0.0);
glVertex2i(400,550);
glColor3f(0.0,0.0,0.0);
60
61. glVertex2i(425,600);
glColor3f(0.0,0.0,0.0);
glVertex2i(374,600);
// triangulos de la mano izquierda
glColor3f(1.0,0.0,0.0);
glVertex2i(300,600);
glColor3f(1.0,0.0,0.0);
glVertex2i(100,300);
glColor3f(1.0,.0,0.0);
glVertex2i(50,400);
glColor3f(0.0,1.0,0.0);
glVertex2i(50,400);
glColor3f(0.0,1.0,1.0);
glVertex2i(0,450);
glColor3f(1.0,1.0,0.0);
glVertex2i(0,350);
// triangulos de la mano derecha
glColor3f(0.0,0.0,1.0);
glVertex2i(500,600);
glColor3f(0.0,0.0,1.0);
glVertex2i(650,300);
61
63. glVertex2i(200,100);
// triangulos de la pierna y pie derecho
glColor3f(1.0,1.0,0.0);
glVertex2i(450,250);
glColor3f(1.0,0.0,1.0);
glVertex2i(600,250);
glColor3f(0.0,1.0,1.0);
glVertex2i(450,350);
Resultado:
63
64. Animación circulo
Descripción: Tenemos que realizar una animación de un circulo
que valla recorriendo la pantalla.
Borrador:
Código:
void dibuja(void)
64
71. h+=0.02;
a+=0.05;
n+=0.08;
r+=0.04;
ang=ang+0.1; //velocidad entre mas grande mas rapido y entre
menos mas lento
for(int j=1;j<=10000000;j++){}//pausa
if(ang==360){ang=0;}// se repite idefinidamente
glFlush(); //forzar dibujado
glutSwapBuffers(); //y esto
}
Resultado:
71
78. Semafor
o
Descripción: Tenemos que realizar un semáforo que valla
cambiando las luces el verde que parpadeé tres veces el
Amarillo y el rojo solo una vez.
Borrador:
78