DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
Proyecto de rene
1. GRUPO: 303 T/M ESPECIALIDAD:
INFORMATICA
CECYTEMTECÁMAC
UTILIZACIÓN DE DISEÑO PARA
EL MANEJO DE GRÁFICO
ALUMNAS:VERONICA
RODRIGUEZ VICENTE
&
AMANDA MARISOL MARTINEZ
LUNA
PROFESOR:
RENE DOMINGUEZ ESCALONA
2. GRUPO: 303 T/M ESPECIALIDAD:
INFORMATICA
INTRODUCCIÓN:
OpenGL (Open Graphics Library) es una especificación estándar que define una API multilenguaje
y multiplataforma para escribir aplicaciones que produzcan gráficos 2D y 3D. La interfaz consiste
en más de 250 funciones diferentes que pueden usarse para dibujar escenas tridimensionales
complejas a partir de primitivas geométricas simples, tales como puntos, líneas y triángulos. Fue
2
desarrollada originalmente por Silicón Graphics Inc. (SGI) en 1992 y se usa ampliamente
en CAD, realidad virtual, representación científica, visualización de información y simulación de
vuelo. También se usa en desarrollo de videojuegos, donde compite con Direct3D en
plataformas Windows. OpenGL tiene dos propósitos esenciales:
Ocultar la complejidad de la interfaz con las diferentes tarjetas gráficas, presentando al
programador una API única y uniforme.
Ocultar las diferentes capacidades de las diversas plataformas hardware, requiriendo que
todas las implementaciones soporten la funcionalidad completa de OpenGL (utilizando
emulación software si fuese necesario).
El funcionamiento básico de OpenGL consiste en aceptar primitivas tales como puntos, líneas y
polígonos, y convertirlas en píxeles. Este proceso es realizado por una pipeline gráfica conocida
8
comoMáquina de estados de OpenGL. La mayor parte de los comandos de OpenGL bien emiten
primitivas a la pipeline gráfica o bien configuran cómo la pipeline procesa dichas primitivas. Hasta
la aparición de la versión 2.0 cada etapa de la pipeline ejecutaba una función prefijada, resultando
poco configurable. A partir de la versión 2.0 algunas etapas son programables usando un lenguaje
de programación llamadoGLSL.
OpenGL es una API basada en procedimientos de bajo nivel que requiere que el programador dicte
los pasos exactos necesarios para renderizar una escena. Esto contrasta con las APIs descriptivas,
donde un programador sólo debe describir la escena y puede dejar que la biblioteca controle los
detalles para representarla. El diseño de bajo nivel de OpenGL requiere que los programadores
conozcan en profundidad la pipeline gráfica, a cambio de darles libertad para implementar
algoritmos gráficos novedosos.
OpenGL ha influido en el desarrollo de las tarjetas gráficas, promocionando un nivel básico de
funcionalidad que actualmente es común en el hardware comercial; algunas de esas
contribuciones son:
Primitivas básicas de puntos, líneas y polígonos rasterizados.
Una pipeline de transformación e iluminación
Z-buffering.
Mapeado de texturas.
3. GRUPO: 303 T/M ESPECIALIDAD:
INFORMATICA
Alpha blending.
ÍNDICE
ANIMACIÓN
CASA
ESTRELLA
SISTEMA SOLAR
MOVIMIENTO EN 8
CUBO RELLENO
AJEDREZ
CUBO CON CUBITOS
PIRAMIDE
SEMAFORO
MUÑECO
OSO
SEÑOR TRIANGULOS
22. GRUPO: 303 T/M ESPECIALIDAD:
INFORMATICA
glutInitWindowPosition(100,100); glutDisplayFunc(dibuja); //Envia
//posicion inicial de la ventana los graficos a la ventana de visualización
glutCreateWindow("Ventana"); glutMainLoop(); //muestra
//nombre de la ventana todo y espera
inicializa(); return 0; //retorna un
valor de cero
NOMBRE DE LA PRÁCTICA:
“AJEDREZ”
PRESENTACIÓN:
25. GRUPO: 303 T/M ESPECIALIDAD:
INFORMATICA
glVertex2i(700,800); glutInitDisplayMode(GLUT_SINGLE |
glVertex2i(800,700); GLUT_RGBA); //establece el modo de
glVertex2i(100,800); visualización
glutInitWindowSize(475,475);
glEnd(); //tamaño de la ventana
glColor3f(1.0 ,1.0 ,1.0 ); glutInitWindowPosition(0,0);
glPointSize(50); //posicion inicial de la ventana
glBegin(GL_LINE); glutCreateWindow("ajedrez");
glVertex2i(500,900); //nombre de la ventana
glVertex2i(500,100); inicializa();
glEnd();
glFlush(); //forza dibujo glutDisplayFunc(dibuja); //Envia
} los graficos a la ventana de visualización
glutMainLoop(); //muestra
todo y espera
int main (int argc, char** argv) //metodo return 0; //retorna un
main valor de cero
{ }
glutInit(&argc, argv);
//incializa GLUT
26. GRUPO: 303 T/M ESPECIALIDAD:
INFORMATICA
NOMBRE DE LA PRÁCTICA:
“CUBO CON CUBITOS”
PRESENTACIÓN:
29. GRUPO: 303 T/M ESPECIALIDAD:
INFORMATICA
glutInitWindowPosition(100,100); glutMainLoop(); //muestra
//posicion inicial de la ventana todo y espera
glutCreateWindow("Ventana"); return 0; //retorna un
//nombre de la ventana valor de cero
inicializa(); }
glutDisplayFunc(dibuja); //Envia
los graficos a la ventana de visualización
NOMBRE DE LA PRÁCTICA:
“PIRAMIDE”
PRESENTACIÓN:
31. GRUPO: 303 T/M ESPECIALIDAD:
INFORMATICA
CÓDIGO:
//mi primer ventana
#include <GL/glut.h> glBegin(GL_LINES);
#include <GL/gl.h> glVertex2i(400,400);
#include <GL/glu.h> glVertex2i(150,150);
void inicializa(void) glBegin(GL_LINES);
{ glVertex2i(600,400);
glClearColor(1.0,1.9,0.2,1.0); //color de glVertex2i(150,850);
fondo
glMatrixMode(GL_PROJECTION); glBegin(GL_LINES);
//Modo de proyeccion glVertex2i(600,400);
glLoadIdentity(); //Establece los glVertex2i(850,150);
parametros de proyeccion
gluOrtho2D(0.0, 1050.0, 0.0, 1000.0);
//vista ortogonal }
glEnd();
} glFlush(); //forza dibujo
void dibuja(void) //funcion
dibuja }
{ int main (int argc, char** argv) //metodo
int i,a=20; main
glClear(GL_COLOR_BUFFER_BIT); {
glColor3f(1.0 ,1.0 ,1.0 ); glutInit(&argc, argv);
glLineWidth(4); //incializa GLUT
glBegin(GL_LINES); glutInitDisplayMode(GLUT_SINGLE |
for(i=0;i<=12;i++){ GLUT_RGBA); //establece el modo de
glVertex2i(400-a*i,400-a*i); visualización
glVertex2i(600+a*i,400-a*i); glutInitWindowSize(450,450);
glVertex2i(600+a*i,400-a*i); //tamaño de la ventana
glVertex2i(600+a*i,600+a*i); glutInitWindowPosition(0,0);
glVertex2i(600+a*i,600+a*i); //posicion inicial de la ventana
glVertex2i(400-a*i,600+a*i); glutCreateWindow("piramide");
glVertex2i(400-a*i,600+a*i); //nombre de la ventana
glVertex2i(400-a*i,400-a*i); inicializa();
//diagonales
glBegin(GL_LINES); glutDisplayFunc(dibuja); //Envia
glVertex2i(400,400); los graficos a la ventana de visualización
glVertex2i(850,850);
32. GRUPO: 303 T/M ESPECIALIDAD:
INFORMATICA
glutMainLoop(); //muestra return 0; //retorna un
todo y espera valor de cero
}
NOMBRE DE LA PRÁCTICA:
“SEMAFORO”
CODIGO:
//mi primer ventana void circulo(int x, int y, int radio)
#include <GL/glut.h> {
#include <GL/gl.h> int angulo=0;
#include <math.h> glBegin(GL_TRIANGLE_FAN);
void inicializa(void) // glColor3f (1.0, 0.0, 1.0);
{ glVertex2f(x,y);
glClearColor(1.0,1.0,1.0,0.0); //color de
fondo for (angulo=0;angulo<=360;
glMatrixMode(GL_PROJECTION); angulo+=1){ glVertex2f(x + sin(angulo) *
//Modo de proyeccion radio, y + cos(angulo) * radio);}
glLoadIdentity(); //Establece los glEnd();
parametros de proyeccion }
gluOrtho2D(0.0, 500.0, 0.0, 500.0); //vista
ortogonal void dibuja(void) //funcion
} dibuja
void circuloc(int x, int y, int t, int radio) {
{ glClear(GL_COLOR_BUFFER_BIT);
int angulo=0; glColor3f(0.0,1.0,0.0); //borra pantalla
glPointSize(t);
glBegin(GL_POINTS); circuloc(250,250,5,80);
//glColor3f (1.0, 0.0, 1.0); glFlush(); //forza dibujo
glVertex2f(x,y); }
//glColor3f(0,0.0,0.0);
for (angulo=0;angulo<=360;
angulo+=1){ glVertex2f(x + sin(angulo) * int main (int argc, char** argv) //metodo
radio, y + cos(angulo) * radio);} main
glEnd(); {
} glutInit(&argc, argv);
//incializa GLUT
33. GRUPO: 303 T/M ESPECIALIDAD:
INFORMATICA
glutInitDisplayMode(GLUT_SINGLE | glutCreateWindow("Ventana");
GLUT_RGBA); //establece el modo de //nombre de la ventana
visualización inicializa();
glutInitWindowSize(500,500); glutDisplayFunc(dibuja); //Envia
//tamaño de la ventana los graficos a la ventana de visualización
glutInitWindowPosition(100,100); glutMainLoop(); //muestra
//posicion inicial de la ventana todo y espera
return 0; //retorna
un valor de cero
}
34. GRUPO: 303 T/M ESPECIALIDAD:
INFORMATICA
NOMBRE DE LA PRÁCTICA:
“MUÑECO”
PRESENTACIÓN:
35. GRUPO: 303 T/M ESPECIALIDAD:
INFORMATICA
CÓDIGO:
//mi primer ventana
#include <GL/glut.h> for (angulo=0;angulo<=360;
#include <GL/gl.h> angulo+=1){ glVertex2f(x + sin(angulo) *
#include <GL/glu.h> radio, y + cos(angulo) * radio);}
#include <math.h>
void inicializa(void)
{ }
glClearColor(0.5,0.3,1.0,0.0); //color de void dibuja(void) //funcion
fondo dibuja
glMatrixMode(GL_PROJECTION); {
//Modo de proyeccion glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity(); //Establece los //borra pantalla
parametros de proyeccion // pie izquierdo
gluOrtho2D(0.0, 1000.0, 0.0, 1000.0); glBegin(GL_QUADS);
//vista ortogonal glColor3f(0.0,0.0,0.0);
} glVertex2i(200,100);
void circuloc(int x, int y, int t, int radio) glVertex2i(300,100);
{ glVertex2i(300,150);
int angulo=0; glVertex2i(250,150);
glPointSize(t); // pie derecho
glBegin(GL_POINTS); glColor3f(0.0,0.0,0.0);
//glColor3f (1.0, 0.0, 1.0); glVertex2i(450,100);
glVertex2f(x,y); glVertex2i(450,150);
//glColor3f(0,0.0,0.0); glVertex2i(500,150);
for (angulo=0;angulo<=360; glVertex2i(550,100);
angulo+=1){ glVertex2f(x + sin(angulo) * // pantalon
radio, y + cos(angulo) * radio);} glColor3f(1.0,1.,1.0);
glEnd(); glVertex2i(275,250);
} glVertex2i(300,325);
glVertex2i(450,325);
void circulo(int x, int y, int radio) glVertex2i(475,250);
{
int angulo=0; glColor3f(1.0,1.0,1.0);
glBegin(GL_TRIANGLE_FAN); glVertex2i(250,150);
// glColor3f (1.0, 0.0, 1.0); glVertex2i(275,250);
glVertex2f(x,y); glVertex2i(375,250);
37. GRUPO: 303 T/M ESPECIALIDAD:
INFORMATICA
glColor3f(0.9,0.8,0.7); glVertex2i(300,880);
circulo(375,750,150); glVertex2i(375,950);
glVertex2i(435,890);
glEnd(); glVertex2i(490,890);
//ojos glVertex2i(510,820);
glBegin(GL_QUADS);
glColor3f(0.2,0.5,1.0);
glVertex2i(300,750); //manos en circulo
glVertex2i(350,750); glEnd();
glVertex2i(350,800); glBegin(GL_POLYGON);
glVertex2i(300,800); glColor3f(0.9,0.8,0.7);
glColor3f(0.2,0.5,1.0); circulo(520,375,20);
glVertex2i(400,750); glEnd();
glVertex2i(450,750); glBegin(GL_POLYGON);
glVertex2i(450,800); glColor3f(0.9,0.8,0.7);
glVertex2i(400,800); circulo(210,375,20);
glEnd();
//ojos centro
// cabeza circulo glEnd();
glColor3f(0.0,0.0,0.0); glFlush(); //forza dibujo
circulo(340,780,10); }
glEnd();
glColor3f(0.0,0.0,0.0);
circulo(440,780,10); int main (int argc, char** argv) //metodo
glEnd(); main
//narizz {
glBegin(GL_POLYGON); glutInit(&argc, argv);
glColor3f(1.0,0.3,0.5); //incializa GLUT
glVertex2i(350,725); glutInitDisplayMode(GLUT_SINGLE |
glVertex2i(375,700); GLUT_RGBA); //establece el modo de
glVertex2i(400,725); visualización
glEnd(); glutInitWindowSize(900,800);
//boca //tamaño de la ventana
glLineWidth(5); glutInitWindowPosition(0,0);
glBegin(GL_LINES); //posicion inicial de la ventana
glColor3f(1.0,0.3,0.2); glutCreateWindow("MI primer ventana");
glVertex2i(300,650); //nombre de la ventana
glVertex2i(450,650); inicializa();
glEnd(); glutDisplayFunc(dibuja); //Envia
//cabello los graficos a la ventana de visualización
glBegin(GL_TRIANGLES); glutMainLoop(); //muestra
glColor3f(0.8,0.5,0.2); todo y espera
38. GRUPO: 303 T/M ESPECIALIDAD:
INFORMATICA
return 0; //retorna un }
valor de cero
39. GRUPO: 303 T/M ESPECIALIDAD:
INFORMATICA
NOMBRE DE LA PRÁCTICA:
“OSO”
PRESENTACIÓN:
40. GRUPO: 303 T/M ESPECIALIDAD:
INFORMATICA
CÓDIGO:
//mi primer ventana for (angulo=0;angulo<=360;
#include <GL/glut.h> angulo+=1){ glVertex2f(x + sin(angulo) *
#include <GL/gl.h> radio, y + cos(angulo) * radio);}
#include <math.h> glEnd();
void inicializa(void) }
{
glClearColor(1.0,1.0,1.0,0.0); //color de void dibuja(void) //funcion
fondo dibuja
glMatrixMode(GL_PROJECTION); {
//Modo de proyeccion glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity(); //Establece los glColor3f(0.6,0.4,0.2); //borra pantalla
parametros de proyeccion circulo(200,200,150);
gluOrtho2D(0.0, 500.0, 0.0, 500.0); //vista glColor3f(0.6,0.4,0.2);
ortogonal //
} circulo(300,300,50);
void circuloc(int x, int y, int t, int radio) glColor3f(0.6,0.4,0.2);
{ //
int angulo=0; circulo(100,300,50);
glPointSize(t); glColor3f(0.6,0.4,0.2);
glBegin(GL_POINTS); //
//glColor3f (1.0, 0.0, 1.0); circulo(100,100,50);
glVertex2f(x,y); glColor3f(0.6,0.4,0.2);
//glColor3f(0,0.0,0.0); //
for (angulo=0;angulo<=360; circulo(300,100,50);
angulo+=1){ glVertex2f(x + sin(angulo) * glColor3f(0.6,0.4,0.2);
radio, y + cos(angulo) * radio);} //
glEnd(); circulo(200,400,90);
} glColor3f(0.6,0.4,0.2);
//boca
void circulo(int x, int y, int radio) circulo(200,400,10);
{ glColor3f(1.0,0.0,0.0);
int angulo=0; //
glBegin(GL_TRIANGLE_FAN); circulo(200,350,30);
// glColor3f (1.0, 0.0, 1.0); glColor3f(0.6,0.4,0.2);
glVertex2f(x,y); //
circulo(259,480,30);
41. GRUPO: 303 T/M ESPECIALIDAD:
INFORMATICA
glColor3f(0.6,0.4,0.2);
// glFlush(); //forza dibujo
circulo(150,480,30); }
glColor3f(0.6,0.4,0.2);
//ojos blancos int main (int argc, char** argv) //metodo
circulo(150,425,25); main
glColor3f(0.0,0.0,0.0); {
circulo(250,425,25); glutInit(&argc, argv);
glColor3f(0.0,0.0,0.0); //incializa GLUT
circulo(150,425,25); glutInitDisplayMode(GLUT_SINGLE |
glColor3f(0.0,0.0,0.0); GLUT_RGBA); //establece el modo de
circulo(150,425,25); visualización
glColor3f(0.0,0.0,0.0); glutInitWindowSize(500,500);
//tamaño de la ventana
//ojos negros glutInitWindowPosition(100,100);
circulo(150,425,10); //posicion inicial de la ventana
glColor3f(1.0,1.0,1.0); glutCreateWindow("ositha");
circulo(250,425,10); //nombre de la ventana
glColor3f(1.0,1.0,1.0); inicializa();
circulo(150,425,10); glutDisplayFunc(dibuja); //Envia
glColor3f(1.0,1.0,1.0); los graficos a la ventana de visualización
circulo(150,425,10); glutMainLoop(); //muestra
glColor3f(1.0,1.0,1.0); todo y espera
return 0; //retorna un
//ombligo valor de cero
circulo(200,170,10); }
glColor3f(0.6,0.5,0.2);
42. GRUPO: 303 T/M ESPECIALIDAD:
INFORMATICA
NOMBRE DE LA PRÁCTICA:
“SEÑOR TRIANGULOS”
PRESENTACIÓN: