Post on 29-Jun-2015
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
CECYTEM TECÁMAC
UTILIZACIÓN DE DISEÑO PARA EL MANEJO DE
GRÁFICO
ALUMNAS: VERONICA RODRIGUEZ VICENTE
&
AMANDA MARISOL MARTINEZ LUNA
PROFESOR: RENE DOMINGUEZ ESCALONA
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
desarrollada originalmente por Silicón Graphics Inc. (SGI) en 19922 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
como Máquina de estados de OpenGL.8 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 llamado GLSL.
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.
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
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
NOMBRE DE LA PRÁCTICA:
“ANIMACIÓN”
PRESENTACIÓN:
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
CÓDIGO:#include <unistd.h>#include <GL/glut.h>#include <GL/gl.h>#include <math.h>int x=1, y=1, a=1, h=1;void inicializa(void){glClearColor(1.0,0.6,0.5,0.0);glMatrixMode(GL_PROJECTION);glLoadIdentity();gluOrtho2D(0.0, 800.0, 0.0, 800.0);// el ancho y largo de nuestra pantalla}
void circulo(int x, int y, int radio){
int angulo=0; glBegin(GL_TRIANGLE_FAN); glColor3f (1.0, 0.3, 0.5); glVertex2f(x,y);
glColor3f(0,0.0,0.0); for (angulo=0;angulo<=360; angulo+=6){ glVertex2f(x + sin(angulo) * radio, y + cos(angulo) * radio);}
glEnd();}void dibuja(void){glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);//abajoif(x>=1 && x<500){ circulo(100+1*x,100,40); glFlush(); x++; }
//derechaif(x==500 && y>=1 && y<500){ circulo (600,100+1*y,40); glFlush(); y++; }
//arribaif(x==500 && y==500 && a>=1 && a<500){ circulo (600-1*a,600,40); glFlush(); a++; }
//izquierdaif(x==500 && y==500 && a==500 && h>=1 && h<500){ circulo(100,600-1*h,40); glFlush(); h++; }//Reptirif(h==500){ x=1; y=1; a=1; h=1; }
glutSwapBuffers();}
int main (int argc, char** argv){glutInit(&argc, argv);glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA| GLUT_DEPTH);glutInitWindowSize(800,800);glutInitWindowPosition(10,10);glutCreateWindow("Ventana");inicializa();glutDisplayFunc(dibuja);glutIdleFunc(dibuja);glutMainLoop();return 0;}
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
NOMBRE DE LA PRÁCTICA:
“CASA”
CÓDIGO://Los puntos en toda la pantalla#include <GL/glut.h>#include <GL/gl.h>
void inicializa(void){glClearColor (3.0, 1.0, 1.0, 1.0);glMatrixMode(GL_PROJECTION);glLoadIdentity();gluOrtho2D(0.0,1000.0,0.0,600.0);}
void dibuja(void) {
int i,j=0;
/* borra la pantalla */glClear(GL_COLOR_BUFFER_BIT);
// Cercafor(i=0;i<50;i++){glBegin(GL_POLYGON);glColor3f (2.0, 0.3, 1.0); glVertex2f(0+20*i,292);glVertex2f(5+20*i,300);glVertex2f(10+20*i,292);glVertex2f(10+20*i,240);glVertex2f(0+20*i,240);glEnd();}glBegin(GL_QUADS);
glVertex2i(0,289);glVertex2i(1000,289);glVertex2i(1000,280);glVertex2i(0,280);
//pastoglColor3f (0.3, 0.5, 0.2); glVertex2i(0,240);glVertex2i(1000,240);glVertex2i(1000,120);glVertex2i(0,120);//banquetaglColor3f (0.5, 0.5, 0.5); glVertex2i(0,120);glVertex2i(1000,120);glVertex2i(1000,90);glVertex2i(0,90);
glColor3f (1.0, 0.0, 0.0); glVertex2i(0,90);glVertex2i(1000,90);glVertex2i(1000,82);glVertex2i(0,82);//calleglColor3f (0.3, 0.3, 0.3); glVertex2i(0,82);glVertex2i(1000,82);glVertex2i(1000,0);glVertex2i(0,0);
//piedrasglColor3f (0.3, 0.6, 0.6);
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
glVertex2i(105,180);glVertex2i(135,180);glVertex2i(135,165);glVertex2i(105,165);
glVertex2i(165,180);glVertex2i(195,180);glVertex2i(195,165);glVertex2i(165,165);
glVertex2i(105,150);glVertex2i(135,150);glVertex2i(135,135);glVertex2i(105,135);
glVertex2i(165,150);glVertex2i(195,150);glVertex2i(195,135);glVertex2i(165,135);//entradaglVertex2i(345,195);glVertex2i(405,195);glVertex2i(405,120);glVertex2i(345,120);
// CasaglColor3f (0.5, 0.0, 0.7); glVertex2i(210,450);glVertex2i(540,450);glVertex2i(540,195);glVertex2i(210,195);// Techo casaglColor3f (0.3, 0.5, 0.3); glVertex2i(210,495);glVertex2i(540,495);glVertex2i(585,450);glVertex2i(165,450);// Techo cocheraglVertex2i(75,345);glVertex2i(210,345);glVertex2i(210,315);glVertex2i(60,315);//Cortina
glColor3f (0.3, 0.5, 0.9); glVertex2i(90,315);glVertex2i(210,315);glVertex2i(210,195);glVertex2i(90,195);
//PuertaglColor3f (1.0, 0.5, 1.0); glVertex2i(345,300);glVertex2i(405,300);glVertex2i(405,195);glVertex2i(345,195);
//ColumnasglColor3f (0.0, 0.5, 0.3); glVertex2i(75,315);glVertex2i(90,315);glVertex2i(90,195);glVertex2i(75,195);
glVertex2i(210,330);glVertex2i(540,330);glVertex2i(540,315);glVertex2i(210,315);
glVertex2i(330,435);glVertex2i(345,435);glVertex2i(345,195);glVertex2i(330,195);
glVertex2i(405,435);glVertex2i(420,435);glVertex2i(420,195);glVertex2i(405,195);
//Ventanas iglColor3f (0.5, 0.7, 1.0); glVertex2i(240,435);glVertex2i(300,435);glVertex2i(300,375);glVertex2i(240,375);
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
glVertex2i(240,300);glVertex2i(300,300);glVertex2i(300,240);glVertex2i(240,240);
//Ventanas dglVertex2i(450,435);glVertex2i(510,435);glVertex2i(510,375);glVertex2i(450,375);
glVertex2i(450,300);glVertex2i(510,300);glVertex2i(510,240);glVertex2i(450,240);//Ventanas balconglVertex2i(345,435);glVertex2i(405,435);glVertex2i(405,330);glVertex2i(345,330);
//Ventanas puertaglVertex2i(360,285);glVertex2i(390,285);glVertex2i(390,210);glVertex2i(360,210);
//TallosglColor3f (0.5, 1.0, 0.5); glVertex2i(670,225);glVertex2i(700,225);glVertex2i(700,150);glVertex2i(670,150);
glVertex2i(875,225);glVertex2i(905,225);glVertex2i(905,150);glVertex2i(875,150);
glEnd();
glBegin(GL_TRIANGLES);// Techo balconglColor3f (0.5, 1.0, 0.5); glVertex2i(375,480);glVertex2i(435,435);glVertex2i(315,435);glEnd();//arbolesglLineWidth (4);glBegin(GL_LINES);glColor3f (0.0, 0.7, 0.0); for(i=0;i<32;i++){glVertex2i(680-3*i,540-10*j);glVertex2i(690+3*i,540-10*j);glVertex2i(685-3*i,535-10*j);glVertex2i(695+3*i,535-10*j);
glVertex2i(885-3*i,540-10*j);glVertex2i(895+3*i,540-10*j);glVertex2i(890-3*i,535-10*j);glVertex2i(900+3*i,535-10*j);j=j+1;}glEnd();
//Linea CalleglLineWidth (4);glColor3f (0.0, 0.0, 0.0); glBegin(GL_LINES);
for(i=0;i<50;i++){glVertex2i(0+120*i,41);glVertex2i(90+120*i,41);}
//BarandalglVertex2i(344,375);glVertex2i(406,375);for(i=0;i<7;i++){glVertex2i(345+10*i,375);glVertex2i(345+10*i,330);}//Divicion Ventana
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
glVertex2i(240,262);glVertex2i(300,262);glVertex2i(240,397);glVertex2i(300,397);glVertex2i(450,397);glVertex2i(510,397);glVertex2i(450,262);glVertex2i(510,262);glVertex2i(375,434);glVertex2i(375,375);glVertex2i(270,397);glVertex2i(270,375);glVertex2i(270,262);glVertex2i(270,240);
glVertex2i(480,397);glVertex2i(480,375);glVertex2i(480,262);glVertex2i(480,240);
glEnd();
//Contorno ventanasglBegin(GL_LINE_LOOP);glVertex2i(240,435);glVertex2i(300,435);glVertex2i(300,375);glVertex2i(240,375);glEnd();glBegin(GL_LINE_LOOP);glVertex2i(240,300);glVertex2i(300,300);glVertex2i(300,240);glVertex2i(240,240);glEnd();glBegin(GL_LINE_LOOP);
glVertex2i(450,435);glVertex2i(510,435);glVertex2i(510,375);glVertex2i(450,375);glEnd();glBegin(GL_LINE_LOOP);glVertex2i(450,300);glVertex2i(510,300);glVertex2i(510,240);glVertex2i(450,240);
glEnd();//ChapaglPointSize(4);glColor3f (0.5, 1.0, 0.5); glBegin(GL_POINTS);glVertex2i(352,247);glVertex2i(352,245);glEnd();
glFlush();}
int main(int argc, char** argv){glutInit(&argc, argv);glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);glutInitWindowSize(1000,600);glutInitWindowPosition(100,100);glutCreateWindow("My Home");inicializa();glutDisplayFunc(dibuja);glutMainLoop();return 0;}
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
NOMBRE DE LA PRÁCTICA:
“ESTRELLA”
PRESENTACIÓN:
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
CODIGO://mi primer ventana#include <GL/glut.h>#include <GL/gl.h>#include <GL/glu.h>
void inicializa(void){glClearColor(1.0,0.8,1.0,0.0); //color de fondoglMatrixMode(GL_PROJECTION); //Modo de proyeccion glLoadIdentity(); //Establece los parametros de proyecciongluOrtho2D(0.0, 1000.0, 0.0, 1000.0); //vista ortogonal}
void dibuja(void) //funcion dibuja{
glClear(GL_COLOR_BUFFER_BIT);glColor3f(0.0 ,0.0 ,0.0 );glPointSize(50);
glBegin(GL_LINES);glVertex2i(350,300);glVertex2i(100,300);
glBegin(GL_LINES);glVertex2i(300,100);glVertex2i(200,400);
glBegin(GL_LINES);glVertex2i(200,400);glVertex2i(100,100);
glBegin(GL_LINES);glVertex2i(100,300);glVertex2i(300,100);
glBegin(GL_LINES);glVertex2i(350,300);glVertex2i(100,100);
glEnd();glFlush(); //forza dibujo}
int main (int argc, char** argv) //metodo main{glutInit(&argc, argv); //incializa GLUTglutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de visualizaciónglutInitWindowSize(475,475); //tamaño de la ventanaglutInitWindowPosition(0,0); //posicion inicial de la ventanaglutCreateWindow("ESTRELLA"); //nombre de la ventanainicializa();
glutDisplayFunc(dibuja); //Envia los graficos a la ventana de visualizaciónglutMainLoop(); //muestra todo y esperareturn 0;
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
NOMBRE DE LA PRÁCTICA:
“SISTEMA SOLAR”
PRESENTACIÓN:
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
CÓDIGO:#include <unistd.h>#include <GL/glut.h>#include <GL/gl.h>#include <math.h>int rad=100;double ang=0, a=0, l=0, d=0, o=0, t=0, e=0, q=0, m=0;void inicializa(void){glClearColor(0.3,0.0,0.0,0.0);glMatrixMode(GL_PROJECTION);glLoadIdentity();gluOrtho2D(0.0, 1000.0, 0.0, 1000.0);// el ancho y largo de nuestra pantalla}
void circulo(int x, int y, int radio){
int angulo=0; glBegin(GL_TRIANGLE_FAN); for (angulo=0;angulo<=360; angulo++){ glVertex2f(x + sin(angulo) * radio, y + cos(angulo) * radio);}
glEnd();}
void circuloc(int x, int y, int t, int radio){
int angulo=0;glPointSize(t);
glBegin(GL_POINTS); //glColor3f (0.4, 0.3, 0.6); glVertex2f(x,y);
//glColor3f(0,0.0,0.0); for (angulo=0;angulo<=360; angulo+=1){ glVertex2f(x + sin(angulo) * radio, y + cos(angulo) * radio);}
glEnd();}void dibuja(void)
{glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);//estoglColor3f (1.0, 1.0, 0.0);circulo( 500,500,30); //funcion circulo //funcion circulocirculoc (500,500,1,50);glColor3f (1.5, 0.8, 0.7);circulo( 500+ sin(a) * 50,500 - cos(a) * 50,10);circuloc (500,500,1,50);glColor3f (1.0, 0.0, 0.6);circulo( 500+ sin(l) * 100,500 + cos(l) * 100,20);circuloc (500,500,1,100);glColor3f (0.6, 0.4, 0.5);circulo( 500+ sin(d) * 150,500 - cos(d) * 150,15);circuloc (500,500,1,150);glColor3f (0.8, 1.0, 0.5);circulo( 500+ sin(o) * 200,500 + cos(o) * 200,30);circuloc (500,500,1,200);glColor3f (0.5, 0.5, 0.5);circulo( 500+ sin(t) * 250,500 - cos(t) * 250,25);circuloc (500,500,1,250);glColor3f (1.0, 0.3, 0.7);circulo( 500+ sin(e) * 300,500 + cos(e) * 300,30);circuloc (500,500,1,300);glColor3f (0.5, 0.2, 1.0);circulo( 500+ sin(q) * 350,500 - cos(q) * 350,20);circuloc (500,500,1,350);glColor3f (0.5, 1.0, 0.8);circulo( 500+ sin(m) * 400,500 + cos(m) * 400,15);circuloc (500,500,1,400);glColor3f (0.0, 0.0, 1.0);
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
circulo( 500+ sin(ang) * 450,500 + cos(ang) * 450,30);circuloc (500,500,1,450);glColor3f (0.0, 0.0, 1.0);a=a+0.02;l=l+0.03;d=d+0.04;o=o+0.05;t=t+0.06;e=t+0.07;q=q+0.08;m=m+0.09;ang=ang+0.01; //velocidad entre mas grande mas rapido y entre menos mas lentofor(int j=1;j<=10000000;j++){}//pausaif(ang==360){ang=0;}// se repite idefinidamenteglFlush(); //forzar dibujado
glutSwapBuffers(); //y esto}
int main (int argc, char** argv){glutInit(&argc, argv);glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA| GLUT_DEPTH);//esto tambienglutInitWindowSize(1000,1000);glutInitWindowPosition(10,10);glutCreateWindow("Ventana");inicializa();glutDisplayFunc(dibuja);glutIdleFunc(dibuja);//esto es lo que cambiaglutMainLoop();return 0;}
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
NOMBRE DE LA PRÁCTICA:
“MOVIMIENTO EN 8”
PRESENTACIÓN:
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
CODIGO:#include <unistd.h>#include <GL/glut.h>#include <GL/gl.h>#include <math.h>
int x=1, x2=1,y=1;double a=6.15, b=6.15;void inicializa(void){glClearColor(0.5,0.6,1.0,0.9);
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
glMatrixMode(GL_PROJECTION);glLoadIdentity();gluOrtho2D(0.0, 700.0, 0.0, 700.0);// el ancho y largo de nuestra pantalla}
void circulo(int x, int y, int radio){ int angulo=0;
glBegin(GL_TRIANGLE_FAN); glVertex2f(x,y); for (angulo=0;angulo<=360; angulo+=6){ glVertex2f(x + sin(angulo) * radio, y + cos(angulo) * radio);}
glEnd();}void dibuja(void)
{glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);glColor3f(0.5, 0.0, 1.0);circulo(300, 300, 70);
circulo(300,180,70); glColor3f(1.0, 0.0, 0.8);
circulo(300,300,50);
circulo(300,180,50);
glColor3f(1.0,0.9,2.0);
if(a>=6.15 && a<=12.41){circulo(300+ sin (a)*60,300- cos(a)*60,10);a=a+0.02; }else{circulo(300 + sin (b) *60,180-cos(b)*-60,10);b=b + 0.2;if(b>12.4){a=6.15;b=6.15;}for(int j=0; j<=10000000; j++) {}}
glFlush(); glutSwapBuffers();}
int main (int argc, char** argv){glutInit(&argc, argv);glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA| GLUT_DEPTH);glutInitWindowSize(700,700);glutInitWindowPosition(10,10);glutCreateWindow("Ventana");inicializa();glutDisplayFunc(dibuja);glutIdleFunc(dibuja);glutMainLoop();return 0;}
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
NOMBRE DE LA PRÁCTICA:
“CUBO RELLENO”
PRESENTACIÓN:
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
CÓDIGO://mi primer ventana#include <GL/glut.h>#include <GL/gl.h>void inicializa(void){glClearColor(1.0,1.0,1.0,0.0); //color de fondoglMatrixMode(GL_PROJECTION); //Modo de proyeccion glLoadIdentity(); //Establece los parametros de proyecciongluOrtho2D(0.0, 500.0, 0.0, 500.0); //vista ortogonal}
void cubo (int x, int y,int t,int l){ double a=.8,b=.6;glColor3f(1.0 , 1.0 , 0.0); glBegin(GL_QUADS);glVertex2f(x,y);glVertex2f(x+t,y);glVertex2f(x+t,y+t);glVertex2f(x,y+t);glColor3f(1.0 , 0.0 , 1.0);glVertex2f(x,y+t);glVertex2f(x+t,y+t);glVertex2f(x+t+(t*a),y+t+(t*b));glVertex2f(x+(t*a),y+t+(t*b));glColor3f(1.0 , 0.0 , 0.0);glVertex2f(x+t,y+t);glVertex2f(x+t+(t*a),y+t+(t*b));glVertex2f(x+t+(t*a),y+(t*b));glVertex2f(x+t,y);glEnd();
glColor3f(0.0 , 0.0 , 0.0);glLineWidth(l);glBegin(GL_LINES);glVertex2f(x,y);
glVertex2f(x+t,y);glVertex2f(x+t,y);glVertex2f(x+t,y+t);glVertex2f(x+t,y+t);glVertex2f(x,y+t);glVertex2f(x,y);
glVertex2f(x,y+t);glVertex2f(x+t,y+t);glVertex2f(x+t,y+t);glVertex2f(x+t+(t*a),y+t+(t*b));glVertex2f(x+t+(t*a),y+t+(t*b));glVertex2f(x+(t*a),y+t+(t*b));glVertex2f(x,y+t);glVertex2f(x+t+(t*a),y+t+(t*b));glVertex2f(x+(t*a),y+t+(t*b));
glVertex2f(x+t,y+t);glVertex2f(x+t+(t*a),y+t+(t*b));glVertex2f(x+t+(t*a),y+t+(t*b));glVertex2f(x+t+(t*a),y+(t*b));glVertex2f(x+t+(t*a),y+(t*b));glVertex2f(x+t,y);glVertex2f(x+t,y+t);glEnd(); } void dibuja(void) //funcion dibuja{glClear(GL_COLOR_BUFFER_BIT); //borra pantallaglColor3f(1.0 , 0.0 , 0.0);
// cubo de atras
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
for(int i=0;i<=10;i++){//linea derecha, izquierdacubo(200,200+20*i,20,5);}for(int j=0;j<=9;j++){//lineas acostadas//linea acostada, abajocubo(220+20*j,200,20,4);//linea acostada, cubo(220+20*j,400,20,5);//linea derecha, derecha
}for(int i=0;i<=10;i++){cubo(420,200+20*i,20,5);}//diagonales//diagonal izquierdafor(int i=0;i<=5;i++){//lineas derechascubo(185-16*i,185-16*i,20,5);}//diagonal derechafor(int i=0;i<=5;i++){//lineas derechascubo(185-16*i,185-16*i,20,5);}//diagonal derechafor(int i=0;i<=5;i++){//lineas derechascubo(405-16*i,387-16*i,20,5);}//diagonal derechafor(int i=0;i<=5;i++){//lineas derechascubo(185-16*i,387-16*i,20,5);}
//diagonal derechafor(int i=0;i<=5;i++){//lineas derechascubo(405-16*i,185-16*i,20,5);
}
/////////////////////////////////////////////////////////////////////////////////// cubo de adelantefor(int i=0;i<=10;i++){//lineas derechascubo(100,100+20*i,20,5);
}for(int j=0;j<=9;j++){//lineas acostadascubo(120+20*j,100,20,4);//dcubo(120+20*j,300,20,5);//diagonales
}for(int i=0;i<=10;i++){cubo(320,100+20*i,20,5);}
glFlush(); //forza dibujo}
int main (int argc, char** argv) //metodo main{glutInit(&argc, argv); //incializa GLUTglutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de visualizaciónglutInitWindowSize(500,500); //tamaño de la ventanaglutInitWindowPosition(100,100); //posicion inicial de la ventanaglutCreateWindow("Ventana"); //nombre de la ventanainicializa();glutDisplayFunc(dibuja); //Envia los graficos a la ventana de visualización
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
glutMainLoop(); //muestra todo y espera
return 0; //retorna un valor de cero
NOMBRE DE LA PRÁCTICA:
“AJEDREZ”
PRESENTACIÓN:
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
CÓDIGO:
//mi primer ventana#include <GL/glut.h>#include <GL/gl.h>#include <GL/glu.h>
void inicializa(void){glClearColor(1.0,0.8,1.0,0.0); //color de fondoglMatrixMode(GL_PROJECTION); //Modo de proyeccion glLoadIdentity(); //Establece los parametros de proyecciongluOrtho2D(0.0, 1000.0, 0.0, 1000.0); //vista ortogonal}
void dibuja(void) //funcion dibuja{
glClear(GL_COLOR_BUFFER_BIT);glColor3f(1.0 ,1.0 ,1.0 );glPointSize(50);glBegin(GL_POINTS);glVertex2i(100,100);glVertex2i(200,200);glVertex2i(300,100);glVertex2i(400,200);glVertex2i(500,100);glVertex2i(600,200);glVertex2i(700,100);
glVertex2i(800,200);glVertex2i(100,300);glVertex2i(200,400);glVertex2i(300,300);glVertex2i(400,400);glVertex2i(500,300);glVertex2i(600,400);glVertex2i(700,300);glVertex2i(800,400); glVertex2i(100,500);glVertex2i(200,600);glVertex2i(300,500);glVertex2i(400,600);glVertex2i(500,500);glVertex2i(600,600);glVertex2i(700,500);glVertex2i(800,600); glVertex2i(100,700);glVertex2i(200,800);glVertex2i(300,700);glVertex2i(400,800);glVertex2i(500,700);glVertex2i(600,800);glVertex2i(700,700);glVertex2i(800,800); glEnd();glColor3f(0.0 ,0.0 ,0.0 );glPointSize(50);glBegin(GL_POINTS);glVertex2i(200,100);glVertex2i(300,200);glVertex2i(400,100);
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
glVertex2i(500,200);glVertex2i(600,100);glVertex2i(700,200);glVertex2i(800,100);glVertex2i(100,200);glVertex2i(200,300);glVertex2i(300,400);glVertex2i(400,300);glVertex2i(500,400);glVertex2i(600,300);glVertex2i(700,400);glVertex2i(800,300);glVertex2i(100,400);glVertex2i(200,500);glVertex2i(300,600);glVertex2i(400,500);glVertex2i(500,600);glVertex2i(600,500);glVertex2i(700,600);glVertex2i(800,500);glVertex2i(100,600);glVertex2i(200,700);glVertex2i(300,800);glVertex2i(400,700);glVertex2i(500,800);glVertex2i(600,700);glVertex2i(700,800);glVertex2i(800,700);glVertex2i(100,800);
glEnd();glColor3f(1.0 ,1.0 ,1.0 );
glPointSize(50);glBegin(GL_LINE);glVertex2i(500,900);glVertex2i(500,100);glEnd(); glFlush(); //forza dibujo}
int main (int argc, char** argv) //metodo main{glutInit(&argc, argv); //incializa GLUTglutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de visualizaciónglutInitWindowSize(475,475); //tamaño de la ventanaglutInitWindowPosition(0,0); //posicion inicial de la ventanaglutCreateWindow("ajedrez"); //nombre de la ventanainicializa();
glutDisplayFunc(dibuja); //Envia los graficos a la ventana de visualizaciónglutMainLoop(); //muestra todo y esperareturn 0; //retorna un valor de cero}
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
NOMBRE DE LA PRÁCTICA:
“CUBO CON CUBITOS”
PRESENTACIÓN:
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
CÓDIGO://mi primer ventana#include <GL/glut.h>#include <GL/gl.h>void inicializa(void){glClearColor(1.0,1.0,1.0,0.0); //color de fondoglMatrixMode(GL_PROJECTION); //Modo de proyeccion glLoadIdentity(); //Establece los parametros de proyecciongluOrtho2D(0.0, 500.0, 0.0, 500.0); //vista ortogonal}
void cubo (int x, int y,int t,int l){ double a=.8,b=.6;glColor3f(1.0 , 1.0 , 0.0); glBegin(GL_QUADS);glVertex2f(x,y);glVertex2f(x+t,y);glVertex2f(x+t,y+t);glVertex2f(x,y+t);glColor3f(1.0 , 0.0 , 1.0);glVertex2f(x,y+t);glVertex2f(x+t,y+t);glVertex2f(x+t+(t*a),y+t+(t*b));glVertex2f(x+(t*a),y+t+(t*b));glColor3f(1.0 , 0.0 , 0.0);glVertex2f(x+t,y+t);glVertex2f(x+t+(t*a),y+t+(t*b));glVertex2f(x+t+(t*a),y+(t*b));glVertex2f(x+t,y);glEnd();
glColor3f(0.0 , 0.0 , 0.0);
glLineWidth(l);glBegin(GL_LINES);glVertex2f(x,y);glVertex2f(x+t,y);glVertex2f(x+t,y);glVertex2f(x+t,y+t);glVertex2f(x+t,y+t);glVertex2f(x,y+t);glVertex2f(x,y);
glVertex2f(x,y+t);glVertex2f(x+t,y+t);glVertex2f(x+t,y+t);glVertex2f(x+t+(t*a),y+t+(t*b));glVertex2f(x+t+(t*a),y+t+(t*b));glVertex2f(x+(t*a),y+t+(t*b));glVertex2f(x,y+t);glVertex2f(x+t+(t*a),y+t+(t*b));glVertex2f(x+(t*a),y+t+(t*b));
glVertex2f(x+t,y+t);glVertex2f(x+t+(t*a),y+t+(t*b));glVertex2f(x+t+(t*a),y+t+(t*b));glVertex2f(x+t+(t*a),y+(t*b));glVertex2f(x+t+(t*a),y+(t*b));glVertex2f(x+t,y);glVertex2f(x+t,y+t);glEnd(); } void dibuja(void) //funcion dibuja{
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
glClear(GL_COLOR_BUFFER_BIT); //borra pantallaglColor3f(1.0 , 0.0 , 0.0);
// cubo de atras
for(int i=0;i<=10;i++){//linea derecha, izquierdacubo(200,200+20*i,20,5);}for(int j=0;j<=9;j++){//lineas acostadas//linea acostada, abajocubo(220+20*j,200,20,4);//linea acostada, cubo(220+20*j,400,20,5);//linea derecha, derecha
}for(int i=0;i<=10;i++){cubo(420,200+20*i,20,5);}//diagonales//diagonal izquierdafor(int i=0;i<=5;i++){//lineas derechascubo(185-16*i,185-16*i,20,5);}//diagonal derechafor(int i=0;i<=5;i++){//lineas derechascubo(185-16*i,185-16*i,20,5);}//diagonal derechafor(int i=0;i<=5;i++){//lineas derechascubo(405-16*i,387-16*i,20,5);}//diagonal derechafor(int i=0;i<=5;i++){//lineas derechascubo(185-16*i,387-16*i,20,5);
}
//diagonal derechafor(int i=0;i<=5;i++){//lineas derechascubo(405-16*i,185-16*i,20,5);}
/////////////////////////////////////////////////////////////////////////////////// cubo de adelantefor(int i=0;i<=10;i++){//lineas derechascubo(100,100+20*i,20,5);
}for(int j=0;j<=9;j++){//lineas acostadascubo(120+20*j,100,20,4);//dcubo(120+20*j,300,20,5);//diagonales
}for(int i=0;i<=10;i++){cubo(320,100+20*i,20,5);}
glFlush(); //forza dibujo}
int main (int argc, char** argv) //metodo main{glutInit(&argc, argv); //incializa GLUTglutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de visualizaciónglutInitWindowSize(500,500); //tamaño de la ventana
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
glutInitWindowPosition(100,100); //posicion inicial de la ventanaglutCreateWindow("Ventana"); //nombre de la ventanainicializa();glutDisplayFunc(dibuja); //Envia los graficos a la ventana de visualización
glutMainLoop(); //muestra todo y esperareturn 0; //retorna un valor de cero}
NOMBRE DE LA PRÁCTICA:
“PIRAMIDE”
PRESENTACIÓN:
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
CÓDIGO:
//mi primer ventana#include <GL/glut.h>#include <GL/gl.h>#include <GL/glu.h>
void inicializa(void){glClearColor(1.0,1.9,0.2,1.0); //color de fondoglMatrixMode(GL_PROJECTION); //Modo de proyeccion glLoadIdentity(); //Establece los parametros de proyecciongluOrtho2D(0.0, 1050.0, 0.0, 1000.0); //vista ortogonal
}
void dibuja(void) //funcion dibuja{int i,a=20;glClear(GL_COLOR_BUFFER_BIT);glColor3f(1.0 ,1.0 ,1.0 );glLineWidth(4);glBegin(GL_LINES);for(i=0;i<=12;i++){glVertex2i(400-a*i,400-a*i);glVertex2i(600+a*i,400-a*i); glVertex2i(600+a*i,400-a*i);glVertex2i(600+a*i,600+a*i);glVertex2i(600+a*i,600+a*i);glVertex2i(400-a*i,600+a*i);glVertex2i(400-a*i,600+a*i);glVertex2i(400-a*i,400-a*i);//diagonalesglBegin(GL_LINES);glVertex2i(400,400);glVertex2i(850,850);
glBegin(GL_LINES);glVertex2i(400,400);glVertex2i(150,150);
glBegin(GL_LINES);glVertex2i(600,400);glVertex2i(150,850);
glBegin(GL_LINES);glVertex2i(600,400);glVertex2i(850,150);
}glEnd(); glFlush(); //forza dibujo
}int main (int argc, char** argv) //metodo main{glutInit(&argc, argv); //incializa GLUTglutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de visualizaciónglutInitWindowSize(450,450); //tamaño de la ventanaglutInitWindowPosition(0,0); //posicion inicial de la ventanaglutCreateWindow("piramide"); //nombre de la ventanainicializa();
glutDisplayFunc(dibuja); //Envia los graficos a la ventana de visualización
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
glutMainLoop(); //muestra todo y espera
return 0; //retorna un valor de cero}
NOMBRE DE LA PRÁCTICA:
“SEMAFORO”
CODIGO://mi primer ventana#include <GL/glut.h>#include <GL/gl.h>#include <math.h>void inicializa(void){glClearColor(1.0,1.0,1.0,0.0); //color de fondoglMatrixMode(GL_PROJECTION); //Modo de proyeccion glLoadIdentity(); //Establece los parametros de proyecciongluOrtho2D(0.0, 500.0, 0.0, 500.0); //vista ortogonal}void circuloc(int x, int y, int t, int radio){
int angulo=0;glPointSize(t);
glBegin(GL_POINTS); //glColor3f (1.0, 0.0, 1.0); glVertex2f(x,y);
//glColor3f(0,0.0,0.0); for (angulo=0;angulo<=360; angulo+=1){ glVertex2f(x + sin(angulo) * radio, y + cos(angulo) * radio);}
glEnd();}
void circulo(int x, int y, int radio){
int angulo=0; glBegin(GL_TRIANGLE_FAN); // glColor3f (1.0, 0.0, 1.0); glVertex2f(x,y);
for (angulo=0;angulo<=360; angulo+=1){ glVertex2f(x + sin(angulo) * radio, y + cos(angulo) * radio);}
glEnd();}
void dibuja(void) //funcion dibuja{glClear(GL_COLOR_BUFFER_BIT); glColor3f(0.0,1.0,0.0); //borra pantalla
circuloc(250,250,5,80);glFlush(); //forza dibujo}
int main (int argc, char** argv) //metodo main{glutInit(&argc, argv); //incializa GLUT
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de visualizaciónglutInitWindowSize(500,500); //tamaño de la ventanaglutInitWindowPosition(100,100); //posicion inicial de la ventana
glutCreateWindow("Ventana"); //nombre de la ventanainicializa();glutDisplayFunc(dibuja); //Envia los graficos a la ventana de visualizaciónglutMainLoop(); //muestra todo y esperareturn 0; //retorna
un valor de cero
}
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
NOMBRE DE LA PRÁCTICA:
“MUÑECO”
PRESENTACIÓN:
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
CÓDIGO://mi primer ventana#include <GL/glut.h>#include <GL/gl.h>#include <GL/glu.h>#include <math.h>void inicializa(void){glClearColor(0.5,0.3,1.0,0.0); //color de fondoglMatrixMode(GL_PROJECTION); //Modo de proyeccion glLoadIdentity(); //Establece los parametros de proyecciongluOrtho2D(0.0, 1000.0, 0.0, 1000.0); //vista ortogonal}void circuloc(int x, int y, int t, int radio){
int angulo=0;glPointSize(t);
glBegin(GL_POINTS); //glColor3f (1.0, 0.0, 1.0); glVertex2f(x,y);
//glColor3f(0,0.0,0.0); for (angulo=0;angulo<=360; angulo+=1){ glVertex2f(x + sin(angulo) * radio, y + cos(angulo) * radio);}
glEnd();}
void circulo(int x, int y, int radio){
int angulo=0; glBegin(GL_TRIANGLE_FAN); // glColor3f (1.0, 0.0, 1.0); glVertex2f(x,y);
for (angulo=0;angulo<=360; angulo+=1){ glVertex2f(x + sin(angulo) * radio, y + cos(angulo) * radio);}
}void dibuja(void) //funcion dibuja{glClear(GL_COLOR_BUFFER_BIT); //borra pantalla// pie izquierdoglBegin(GL_QUADS);glColor3f(0.0,0.0,0.0);glVertex2i(200,100);glVertex2i(300,100);glVertex2i(300,150);glVertex2i(250,150);// pie derechoglColor3f(0.0,0.0,0.0);glVertex2i(450,100);glVertex2i(450,150);glVertex2i(500,150);glVertex2i(550,100);// pantalonglColor3f(1.0,1.,1.0);glVertex2i(275,250);glVertex2i(300,325);glVertex2i(450,325);glVertex2i(475,250);
glColor3f(1.0,1.0,1.0);glVertex2i(250,150);glVertex2i(275,250);glVertex2i(375,250);
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
glVertex2i(300,150);
glColor3f(1.0,1.0,1.0);glVertex2i(375,250);glVertex2i(475,250);glVertex2i(500,150);glVertex2i(450,150);// cinturonglColor3f(0.0,1.0,0.0);glVertex2i(300,325);glVertex2i(300,350);glVertex2i(450,350);glVertex2i(450,325);
glColor3f(1.0,0.0,0.0);glVertex2i(350,325);glVertex2i(350,350);glVertex2i(400,350);glVertex2i(400,325);// camisaglColor3f(0.0,1.0,1.0);glVertex2i(300,350);glVertex2i(300,600);glVertex2i(450,600);glVertex2i(450,350);// camisa toraxglVertex2i(225,550);glVertex2i(250,600);glVertex2i(500,600);glVertex2i(525,550);// manga izquierdaglVertex2i(200,450);glVertex2i(225,550);glVertex2i(300,550);glVertex2i(250,450);// manga derechaglVertex2i(500,450);glVertex2i(450,550);glVertex2i(525,550);glVertex2i(550,450);// mano izquierdaglColor3f(0.9,0.8,0.7);glVertex2i(200,375);
glVertex2i(210,450);glVertex2i(230,450);glVertex2i(220,375);// mano derechaglVertex2i(510,375);glVertex2i(510,450);glVertex2i(530,450);glVertex2i(530,375);// botones de la camisaglColor3f(0.5,0.2,0.0);glVertex2i(350,525);glVertex2i(350,550);glVertex2i(400,550);glVertex2i(400,525);
glVertex2i(350,475);glVertex2i(350,500);glVertex2i(400,500);glVertex2i(400,475);
glVertex2i(350,425);glVertex2i(350,450);glVertex2i(400,450);glVertex2i(400,425);
glVertex2i(350,375);glVertex2i(350,400);glVertex2i(400,400);glVertex2i(400,375);// cuelloglColor3f(0.9,0.8,0.7);glVertex2i(350,600);glVertex2i(350,650);glVertex2i(400,650);glVertex2i(400,600);glEnd();
glBegin(GL_TRIANGLES);glColor3f(0.9,0.8,0.7);glVertex2i(350,600);glVertex2i(400,600);glVertex2i(375,550);// cabeza circulo
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
glColor3f(0.9,0.8,0.7);circulo(375,750,150);
glEnd(); //ojosglBegin(GL_QUADS);glColor3f(0.2,0.5,1.0);glVertex2i(300,750);glVertex2i(350,750);glVertex2i(350,800);glVertex2i(300,800);glColor3f(0.2,0.5,1.0);glVertex2i(400,750);glVertex2i(450,750);glVertex2i(450,800);glVertex2i(400,800);glEnd();//ojos centro// cabeza circuloglColor3f(0.0,0.0,0.0);circulo(340,780,10);glEnd();glColor3f(0.0,0.0,0.0);circulo(440,780,10);glEnd();//narizzglBegin(GL_POLYGON);glColor3f(1.0,0.3,0.5);glVertex2i(350,725);glVertex2i(375,700);glVertex2i(400,725);glEnd();//bocaglLineWidth(5);glBegin(GL_LINES);glColor3f(1.0,0.3,0.2);glVertex2i(300,650);glVertex2i(450,650);glEnd();//cabelloglBegin(GL_TRIANGLES);glColor3f(0.8,0.5,0.2);
glVertex2i(300,880);glVertex2i(375,950);
glVertex2i(435,890);glVertex2i(490,890);glVertex2i(510,820);
//manos en circuloglEnd();glBegin(GL_POLYGON);glColor3f(0.9,0.8,0.7);circulo(520,375,20);glEnd();glBegin(GL_POLYGON);glColor3f(0.9,0.8,0.7);circulo(210,375,20);
glEnd();glFlush(); //forza dibujo}
int main (int argc, char** argv) //metodo main{glutInit(&argc, argv); //incializa GLUTglutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de visualizaciónglutInitWindowSize(900,800); //tamaño de la ventanaglutInitWindowPosition(0,0); //posicion inicial de la ventanaglutCreateWindow("MI primer ventana"); //nombre de la ventanainicializa();glutDisplayFunc(dibuja); //Envia los graficos a la ventana de visualizaciónglutMainLoop(); //muestra todo y espera
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
return 0; //retorna un valor de cero
}
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
NOMBRE DE LA PRÁCTICA:
“OSO”
PRESENTACIÓN:
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
CÓDIGO://mi primer ventana#include <GL/glut.h>#include <GL/gl.h>#include <math.h>void inicializa(void){glClearColor(1.0,1.0,1.0,0.0); //color de fondoglMatrixMode(GL_PROJECTION); //Modo de proyeccion glLoadIdentity(); //Establece los parametros de proyecciongluOrtho2D(0.0, 500.0, 0.0, 500.0); //vista ortogonal}void circuloc(int x, int y, int t, int radio){
int angulo=0;glPointSize(t);
glBegin(GL_POINTS); //glColor3f (1.0, 0.0, 1.0); glVertex2f(x,y);
//glColor3f(0,0.0,0.0); for (angulo=0;angulo<=360; angulo+=1){ glVertex2f(x + sin(angulo) * radio, y + cos(angulo) * radio);}
glEnd();}
void circulo(int x, int y, int radio){
int angulo=0; glBegin(GL_TRIANGLE_FAN); // glColor3f (1.0, 0.0, 1.0); glVertex2f(x,y);
for (angulo=0;angulo<=360; angulo+=1){ glVertex2f(x + sin(angulo) * radio, y + cos(angulo) * radio);}
glEnd();}
void dibuja(void) //funcion dibuja{glClear(GL_COLOR_BUFFER_BIT); glColor3f(0.6,0.4,0.2); //borra pantallacirculo(200,200,150);glColor3f(0.6,0.4,0.2);//circulo(300,300,50);glColor3f(0.6,0.4,0.2);//circulo(100,300,50);glColor3f(0.6,0.4,0.2);//circulo(100,100,50);glColor3f(0.6,0.4,0.2);//circulo(300,100,50);glColor3f(0.6,0.4,0.2);//circulo(200,400,90);glColor3f(0.6,0.4,0.2);//bocacirculo(200,400,10);glColor3f(1.0,0.0,0.0);//circulo(200,350,30);glColor3f(0.6,0.4,0.2);//circulo(259,480,30);
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
glColor3f(0.6,0.4,0.2);//circulo(150,480,30);glColor3f(0.6,0.4,0.2);
//ojos blancoscirculo(150,425,25);glColor3f(0.0,0.0,0.0);circulo(250,425,25);glColor3f(0.0,0.0,0.0);circulo(150,425,25);glColor3f(0.0,0.0,0.0);circulo(150,425,25);glColor3f(0.0,0.0,0.0);
//ojos negroscirculo(150,425,10);glColor3f(1.0,1.0,1.0);circulo(250,425,10);glColor3f(1.0,1.0,1.0);circulo(150,425,10);glColor3f(1.0,1.0,1.0);circulo(150,425,10);glColor3f(1.0,1.0,1.0);
//ombligocirculo(200,170,10);glColor3f(0.6,0.5,0.2);
glFlush(); //forza dibujo}
int main (int argc, char** argv) //metodo main{glutInit(&argc, argv); //incializa GLUTglutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de visualizaciónglutInitWindowSize(500,500); //tamaño de la ventanaglutInitWindowPosition(100,100); //posicion inicial de la ventanaglutCreateWindow("ositha"); //nombre de la ventanainicializa();glutDisplayFunc(dibuja); //Envia los graficos a la ventana de visualizaciónglutMainLoop(); //muestra todo y esperareturn 0; //retorna un valor de cero}
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
NOMBRE DE LA PRÁCTICA:
“SEÑOR TRIANGULOS”
PRESENTACIÓN:
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
CÓDIGO://mi primer ventana#include <GL/glut.h>#include <GL/gl.h>#include <GL/glu.h>
void inicializa(void){glClearColor(0.0,1.0,1.0,0.0); //color de fondoglMatrixMode(GL_PROJECTION); //Modo de proyeccion glLoadIdentity(); //Establece los parametros de proyecciongluOrtho2D(0.0, 1000.0, 0.0, 1000.0); //vista ortogonal}
void dibuja(void) //funcion dibuja{glClear(GL_COLOR_BUFFER_BIT); //borra pantallaglColor3f(1.0 , 0.0 , 0.0);///pata derechaglBegin(GL_TRIANGLES);glVertex2i(160,40);glColor3f(1.0 , 0.8 , 1.0);glVertex2i(245,40);glColor3f(1.0 , 1.0 , 0.0);glVertex2i(200,80); glEnd(); //pata de arriba derecha
glColor3f(1.0 , 1.0 , 0.9);glBegin(GL_TRIANGLES);glVertex2i(245,40);
glColor3f(1.0 , 1.0 , 1.0);glVertex2i(245,360);glColor3f(1.0 , 0.9 , 0.0);glVertex2i(180,280); glEnd(); //pierna izquierda glColor3f(1.0 , 0.6 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(320,360);glColor3f(1.8,0.6,1.0);glVertex2i(320,280);glColor3f(0.2 ,1.0,0.7);glVertex2i(420,280); glEnd(); //pata izquierda glColor3f(1.0 , 1.0 , 0.6);glBegin(GL_TRIANGLES);glVertex2i(420,280);glColor3f(1.0 , 0.0 , 0.0);glVertex2i(380,240);glColor3f(0.5 , 1.0 , 0.0);glVertex2i(420,180); glEnd(); //pata sobre el balon glColor3f(0.0 , 0.0 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(420,180);glColor3f(0.0 , 0.0 , 1.0);glVertex2i(520,180);glColor3f(0.0 ,0.0 , 1.0);glVertex2i(440,220); glEnd(); //mano dercha(dedos)
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
glColor3f(1.0 , 0.9 , 1.0);glBegin(GL_TRIANGLES);glVertex2i(60,360);glColor3f(1.0 , 0.0 , 1.0);glVertex2i(80,440);glColor3f(1.0 , 1.0 , 0.0);glVertex2i(100,400); glEnd(); glColor3f(0.9 , 9.0 , 0.1);glBegin(GL_TRIANGLES);glVertex2i(100,400);glColor3f(0.7 , 0.8 , 1.0);glVertex2i(200,520);glColor3f(1.0 , 1.0 , 0.5);glVertex2i(140,340); glEnd(); glColor3f(1.0 , 0.8 , 0.7);glBegin(GL_TRIANGLES);glVertex2i(260,520);glColor3f(1.0 , 0.2 , 1.0);glVertex2i(298,480);glColor3f(1.0 , 1.0 , 0.6);glVertex2i(320,520); glEnd(); glColor3f(1.0 , 0.7 , 0.4);glBegin(GL_TRIANGLES);glVertex2i(380,520);glColor3f(1.0 , 0.4 , 1.0);glVertex2i(440,360);glColor3f(1.0 , 1.0 , 0.1);glVertex2i(480,400); glEnd(); glColor3f(1.0 , 0.6 , 0.4);
glBegin(GL_TRIANGLES);glVertex2i(480,400);glColor3f(1.0 , 0.4 , 1.0);glVertex2i(500,460);glColor3f(1.0 , 1.0 , 0.8);glVertex2i(520,360); glEnd(); glColor3f(1.0 , 0.5 , 0.7);glBegin(GL_TRIANGLES);glVertex2i(298,520);glColor3f(1.0 , 0.4 , 1.0);glVertex2i(360,600);glColor3f(1.0 , 1.0 , 0.7);glVertex2i(220,600); glEnd(); glColor3f(1.0 , 0.2 , 0.8);glBegin(GL_TRIANGLES);glVertex2i(160,600);glColor3f(1.0 , 0.7 , 1.0);glVertex2i(298,720);glColor3f(1.0 , 1.0 , 0.1);glVertex2i(420,600); glEnd(); glColor3f(1.0 , 0.7 , 0.7);glBegin(GL_TRIANGLES);glVertex2i(540,320);glColor3f(1.0 , 0.6 , 1.6);glVertex2i(498,280);glColor3f(1.0 , 1.0 , 0.7);glVertex2i(560,280); glEnd(); glColor3f(1.0 , 0.7 , 0.5);glBegin(GL_TRIANGLES);glVertex2i(540,320);glColor3f(1.0 , 0.4 , 1.2);glVertex2i(580,540);
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA
glColor3f(1.0 , 1.0 , 0.7);glVertex2i(520,540); glEnd(); glColor3f(1.0 , 0.7 , 0.4);glBegin(GL_TRIANGLES);glVertex2i(540,320);glColor3f(1.0 , 0.8 , 1.0);glVertex2i(640,540);glColor3f(1.0 , 1.0 , 0.4);glVertex2i(620,540); glEnd(); glColor3f(1.0 , 1.0 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(540,320);glColor3f(1.0 , 1.0 , 1.0);glVertex2i(498,540);glColor3f(1.0 , 0.0 , 0.0);glVertex2i(478,540); glEnd();//camiza glBegin(GL_QUADS);glColor3f(0.6 , 0.5 , 0.4);glVertex2i(200,520);glVertex2i(200,340);glVertex2i(380,340);glVertex2i(380,520);glEnd();
glColor3f(1.0 , 0.5 , 0.0);glBegin(GL_TRIANGLES);glVertex2i(260,520);glColor3f(1.0 , 1.0 , 1.0);glVertex2i(298,480);glColor3f(1.0 , 1.0 , 0.9);glVertex2i(320,520); glEnd(); //balon glBegin(GL_POLYGON);glVertex2i(520,100);glVertex2i(520,140);glVertex2i(480,180);
glVertex2i(440,180);glVertex2i(400,140);glVertex2i(400,100);glVertex2i(440,60);glVertex2i(480,60);glEnd();
glBegin(GL_POLYGON);glVertex2i(0,0);glVertex2i(0,40);glVertex2i(1440,40);glVertex2i(1440,0);
glEnd();
glFlush(); //forza dibujo}
int main (int argc, char** argv) //metodo main{glutInit(&argc, argv); //incializa GLUTglutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de visualizaciónglutInitWindowSize(500,500); //tamaño de la ventanaglutInitWindowPosition(0,0); //posicion inicial de la ventanaglutCreateWindow("MI primer ventana"); //nombre de la ventanainicializa();glutDisplayFunc(dibuja); //Envia los graficos a la ventana de visualizaciónglutMainLoop(); //muestra todo y esperareturn 0; //retorna un valor de cero}
GRUPO: 303 T/M ESPECIALIDAD: INFORMATICA