1. Manual de Practicas de Open GL con Dev C++
4. Colegio de Estudios Científicos Y Tecnológicos del Estado de México Índice
1. Tablero de Ajedrez
2. Estrella
3. Cubo con líneas
4. Cubo delineado
5. Muñeco con triángulos
6. Casita
7. Oso
8. Cubo con cubitos
9. Muñeco con formas
10. Animación circulo
11. Animación circulo rotando
12. Animación sistema solar
13. Movimiento en ocho
14. Semáforo
15. Objetos 3D Wire (9)
16. Objetos 3D Solid (9)
17. Interacción Teclado
18. Interacción con mouse
19. Interacción de objetos 3D con mouse y teclado
20. Cubo 3D con líneas 4
tablero de ajedrez
#include<GL/glut.h>
#include<GL/gl.h>
2. #include<GL/glu.h>void inicializa(void){glClearColor(0.0,3.0,5.0,1.0); //color de
fondoglMatrixMode(GL_PROJECTION); //Modo de proyeccionglLoadIdentity(); //Establece los
parametros de proyecciongluOrtho2D(0.0, 1050.0, 0.0, 1000.0); //vista ortogonal}void dibuja(void)
//funcion dibuja{glClear(GL_COLOR_BUFFER_BIT); //borra pantallaglColor3f(0.0 , 0.0 ,
0.0);glPointSize(60);glBegin(GL_POINTS);glVertex2i(100,100);glVertex2i(347,100);glVertex2i(597,1
00);glVertex2i(848,100);glVertex2i(220,220);glVertex2i(473,220);glVertex2i(723,220); 5
6. Colegio de Estudios Científicos Y Tecnológicos del Estado de
MéxicoglVertex2i(970,220);glVertex2i(100,340);glVertex2i(347,340);glVertex2i(597,340);glVertex2
i(848,340);glVertex2i(220,460);glVertex2i(473,460);glVertex2i(723,460);glVertex2i(970,460);glVert
ex2i(100,580);glVertex2i(347,580);glVertex2i(597,580);glVertex2i(848,580);glVertex2i(220,700);gl
Vertex2i(473,700);glVertex2i(723,700);glVertex2i(970,700);glVertex2i(100,820);glVertex2i(347,820
);glVertex2i(597,820);glVertex2i(848,820);glEnd();glColor3f(1.0 , 1.0 ,
1.0);glPointSize(60);glBegin(GL_POINTS);glVertex2i(220,100);glVertex2i(473,100); 6
7. Colegio de Estudios Científicos Y Tecnológicos del Estado de
MéxicoglVertex2i(723,100);glVertex2i(970,100);glVertex2i(100,220);glVertex2i(347,220);glVertex2
i(597,220);glVertex2i(848,220);glVertex2i(220,340);glVertex2i(473,340);glVertex2i(723,340);glVert
ex2i(970,340);glVertex2i(100,460);glVertex2i(347,460);glVertex2i(597,460);glVertex2i(848,460);gl
Vertex2i(220,580);glVertex2i(473,580);glVertex2i(723,580);glVertex2i(970,580);glVertex2i(100,700
);glVertex2i(347,700);glVertex2i(597,700);glVertex2i(848,700);glVertex2i(220,820);glVertex2i(473,
820);glVertex2i(723,820);glVertex2i(970,820);glEnd(); 7
8. Colegio de Estudios Científicos Y Tecnológicos del Estado de MéxicoglFlush(); //forza
dibujo}intmain (intargc, char** argv) //metodomain{glutInit(&argc, argv);
//incializaGLUTglutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo
devisualizaciónglutInitWindowSize(500,500); //tamaño de la ventanaglutInitWindowPosition(0,0);
//posicion inicial de la ventanaglutCreateWindow("TABLERO DE AJEDREZ"); //nombre de la
ventanainicializa();glutDisplayFunc(dibuja); //Envia los graficos a la ventana
devisualizaciónglutMainLoop(); //muestra todo y esperareturn 0; //retorna un valor de cero} 8
9. Colegio de Estudios Científicos Y Tecnológicos del Estado de
MéxicoEstrella//estrella#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 proyeccionglLoadIdentity(); //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
pantallaglLineWidth(2);glBegin(GL_LINES);glVertex2i(50,50);glVertex2i(250,400);glVertex2i(250,40
0);glVertex2i(400,50);glVertex2i(400,50);glVertex2i(50,300);glVertex2i(50,300);glVertex2i(400,300
); 9
10. Colegio de Estudios Científicos Y Tecnológicos del Estado de
MéxicoglVertex2i(400,300);glVertex2i(50,50);glEnd();glFlush(); //forza dibujo}intmain (intargc,
char** argv) //metodomain{glutInit(&argc, argv);
3. //incializaGLUTglutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo
devisualizaciónglutInitWindowSize(500,500); //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
devisualizaciónglutMainLoop(); //muestra todo y esperareturn 0; //retorna un valor de cero} 10
11. Colegio de Estudios Científicos Y Tecnológicos del Estado de MéxicoCubo con líneas//cubo con
lineas#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 proyeccionglLoadIdentity(); //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
pantallaglLineWidth(2);glBegin(GL_LINES);//enfrenteglVertex2i(50,50);glVertex2i(50,300);glVertex
2i(50,300); 11
12. Colegio de Estudios Científicos Y Tecnológicos del Estado de
MéxicoglVertex2i(300,300);glVertex2i(300,300);glVertex2i(300,50);glVertex2i(300,50);glVertex2i(5
0,50);//atrasglVertex2i(150,150);glVertex2i(150,400);glVertex2i(150,400);glVertex2i(400,400);glVe
rtex2i(400,400);glVertex2i(400,150);glVertex2i(400,150);glVertex2i(150,150);//linea
izquierdaglVertex2i(50,300);glVertex2i(150,400);//linea
derechaglVertex2i(300,300);glVertex2i(400,400);//linea izquierda
abajoglVertex2i(50,50);glVertex2i(150,150);//linea derecha abajoglVertex2i(300,50); 12
13. Colegio de Estudios Científicos Y Tecnológicos del Estado de
MéxicoglVertex2i(400,150);glEnd();glFlush(); //forza dibujo}intmain (intargc, char** argv)
//metodomain{glutInit(&argc, argv); //incializaGLUTglutInitDisplayMode(GLUT_SINGLE |
GLUT_RGBA); //establece el modo devisualizaciónglutInitWindowSize(500,500); //tamaño de la
ventanaglutInitWindowPosition(0,0); //posicion inicial de la ventanaglutCreateWindow("mi
primera ventana"); //nombre de la ventanainicializa();glutDisplayFunc(dibuja); //Envia los graficos
a la ventana devisualizaciónglutMainLoop(); //muestra todo y esperareturn 0; //retorna un valor
de cero} 13
14. Colegio de Estudios Científicos Y Tecnológicos del Estado de MéxicoCubo delineado//cubo
delineado#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 proyeccionglLoadIdentity(); //Establece los parametros de proyecciongluOrtho2D(0.0,
1000.0, 0.0, 1000.0); //vista ortogonal}void dibuja(void) //funcion dibuja{ 14
15. Colegio de Estudios Científicos Y Tecnológicos del Estado de
MéxicoglClear(GL_COLOR_BUFFER_BIT); //borra pantallaglColor3f(1.0 , 0.0 ,
0.0);glPointSize(50);glBegin(GL_QUADS);//ATRASglColor3f(0.0 , 0.0 ,
0.0);glVertex2d(100,150);glVertex2d(300,100);glVertex2d(300,350);glVertex2d(100,350);//ABAJOg
lColor3f(0.0 , 0.0 ,
0.0);glVertex2d(200,100);glVertex2d(400,100);glVertex2d(300,150);glVertex2d(100,150);//izquier
4. doglColor3f(0.0 , 0.1 ,
0.1);glVertex2d(100,150);glVertex2d(200,100);glVertex2d(200,300);glVertex2d(100,350);//derech
oglColor3f(1.1 , 1.1 , 1.1); 15
16. Colegio de Estudios Científicos Y Tecnológicos del Estado de
MéxicoglVertex2d(300,150);glVertex2d(400,100);glVertex2d(400,300);glVertex2d(300,350);//arrib
aglColor3f(1.2 , 0.0 ,
0.0);glVertex2d(200,300);glVertex2d(400,300);glVertex2d(300,350);glVertex2d(100,350);//enfrent
eglColor3f(1.5 , 1.5 ,
0.0);glVertex2d(200,100);glVertex2d(400,100);glVertex2d(400,300);glVertex2d(200,300);glEnd();gl
Flush(); //forza dibujo}intmain (intargc, char** argv) //metodomain{glutInit(&argc, argv);
//incializaGLUTglutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo
devisualizaciónglutInitWindowSize(500,500); //tamaño de la ventana 16
17. Colegio de Estudios Científicos Y Tecnológicos del Estado de
MéxicoglutInitWindowPosition(0,0); //posicion inicial de la ventanaglutCreateWindow("mi
primera ventana"); //nombre de la ventanainicializa();glutDisplayFunc(dibuja); //Envia los graficos
a la ventana devisualizaciónglutMainLoop(); //muestra todo y esperareturn 0; //retorna un valor
de cero}Muñeco con Triángulos#include<GL/glut.h>#include<GL/gl.h>#include<GL/glu.h> 17
18. Colegio de Estudios Científicos Y Tecnológicos del Estado de Méxicovoid
inicializa(void){glClearColor(0.0,0.0,0.0,0.0); //color de fondoglMatrixMode(GL_PROJECTION);
//Modo de proyeccionglLoadIdentity(); //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 ,
1.0);glLineWidth(5);glBegin(GL_TRIANGLES);glVertex2i(97,12);glColor3f(1.0 , 0.0 ,
1.0);glVertex2i(167,12);glColor3f(0.0 , 0.0 , 1.0);glVertex2i(167,54);glVertex2i(140,55);glColor3f(1.0
, 0.0 , 1.0);glVertex2i(190,55);glColor3f(0.0 , 0.0 , 1.0);glVertex2i(190,145);glVertex2i(260,12); 18
19. Colegio de Estudios Científicos Y Tecnológicos del Estado de MéxicoglColor3f(1.0 , 0.0 ,
1.0);glVertex2i(333,12);glColor3f(0.0 , 0.0 , 1.0);glVertex2i(260,54);glVertex2i(240,54);glColor3f(1.0
, 0.0 , 1.0);glVertex2i(290,54);glColor3f(0.0 , 0.0 ,
1.0);glVertex2i(240,145);glVertex2i(145,375);glColor3f(1.0 , 0.0 ,
1.0);glVertex2i(300,375);glColor3f(0.0 , 0.0 ,
1.0);glVertex2i(230,455);glVertex2i(320,300);glColor3f(1.0 , 0.0 ,
1.0);glVertex2i(320,150);glColor3f(0.0 , 0.0 ,
1.0);glVertex2i(275,300);glVertex2i(150,300);glColor3f(1.0 , 0.0 ,
1.0);glVertex2i(110,300);glColor3f(0.0 , 0.0 , 1.0);glVertex2i(110,150); 19
20. Colegio de Estudios Científicos Y Tecnológicos del Estado de
MéxicoglVertex2i(150,300);glColor3f(1.0 , 0.0 , 1.0);glVertex2i(110,300);glColor3f(0.0 , 0.0 ,
1.0);glVertex2i(110,150);glVertex2i(260,380);glColor3f(1.0 , 0.0 ,
1.0);glVertex2i(183,380);glColor3f(0.0 , 0.0 , 1.0);glVertex2i(219,309);glColor3f(1.0 , 0.0 ,
1.0);glVertex2i(340,30);glVertex2i(395,30);glVertex2i(420,130);glColor3f(1.0 , 0.0 ,
5. 1.0);glVertex2i(340,30);glVertex2i(395,30);glVertex2i(420,130);glColor3f(1.0 , 0.0 ,
1.0);glVertex2i(372,181);glVertex2i(330,208);glColor3f(0.0 , 0.0 ,
1.0);glVertex2i(326,150);glColor3f(1.0 , 0.0 , 1.0); 20
21. Colegio de Estudios Científicos Y Tecnológicos del Estado de
MéxicoglVertex2i(102,152);glVertex2i(59,179);glColor3f(0.0 , 0.0 ,
1.0);glVertex2i(101,208);glEnd();glBegin(GL_QUADS);glVertex2i(155,155);glColor3f(1.0 , 0.0 ,
1.0);glVertex2i(155,305);glVertex2i(280,305);glColor3f(1.0 , 0.0 ,
1.0);glVertex2i(280,155);glColor3f(010 , 1.0 , .0);glVertex2i(350,250);glColor3f(0.0 , 1.0 ,
.0);glVertex2i(370,420);glColor3f(0.0 , 1.0 , .0);glVertex2i(490,250);glColor3f(1.0 , 1.0 ,
.0);glVertex2i(420,135);glEnd();glFlush(); //forza dibujo}intmain (intargc, char** argv)
//metodomain{ 21
22. Colegio de Estudios Científicos Y Tecnológicos del Estado de MéxicoglutInit(&argc, argv);
//incializaGLUTglutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo
devisualizaciónglutInitWindowSize(500,500); //tamaño de la ventanaglutInitWindowPosition(0,0);
//posicion inicial de la ventanaglutCreateWindow("Muñeco con triangulos"); //nombre de la
ventanainicializa();glutDisplayFunc(dibuja); //Envia los graficos a la ventana
devisualizaciónglutMainLoop(); //muestra todo y esperareturn 0; //retorna un valor de cero}Casita
22
23. Colegio de Estudios Científicos Y Tecnológicos del Estado de
México#include<GL/glut.h>#include<GL/gl.h>#include<GL/glu.h>void
inicializa(void){glClearColor(0.0,0.0,1.0,1.0);glMatrixMode(GL_PROJECTION);glLoadIdentity();gluOr
tho2D(0.0, 900.0, 0.0, 900.0);}void dibuja(void){glClear(GL_COLOR_BUFFER_BIT);glColor3f(0.12
,0.12 ,0.12
);glLineWidth(2);glBegin(GL_QUADS);glVertex2i(0,80);glVertex2i(1000,80);glVertex2i(1000,0);glVer
tex2i(0,0);glEnd();glColor3f(1.0,1.0,1.0);glBegin(GL_LINES);glVertex2i(0,40);glVertex2i(50,40); 23
24. Colegio de Estudios Científicos Y Tecnológicos del Estado de
MéxicoglVertex2i(70,40);glVertex2i(120,40);glVertex2i(140,40);glVertex2i(190,40);glVertex2i(210,
40);glVertex2i(260,40);glVertex2i(280,40);glVertex2i(330,40);glVertex2i(350,40);glVertex2i(400,40
);glVertex2i(420,40);glVertex2i(470,40);glVertex2i(490,40);glVertex2i(540,40);glVertex2i(560,40);gl
Vertex2i(610,40);glVertex2i(630,40);glVertex2i(680,40);glVertex2i(700,40);glVertex2i(750,40);glVe
rtex2i(770,40);glVertex2i(820,40);glVertex2i(840,40);glVertex2i(890,40);glEnd(); 24
25. Colegio de Estudios Científicos Y Tecnológicos del Estado de MéxicoglColor3f(1.0 ,1.0 ,0.0
);glLineWidth(5);glBegin(GL_LINES);glVertex2i(0,84);glVertex2i(1000,84);glEnd();glColor3f(0.21,0.2
1,0.21);glBegin(GL_POLYGON);glVertex2i(0,118);glVertex2i(345,118);glVertex2i(345,193);glVertex
2i(405,193);glVertex2i(405,118);glVertex2i(1000,118);glVertex2i(1000,88);glVertex2i(0,88);glEnd();
glColor3f(0.0,1.0,0.0);glBegin(GL_POLYGON);glVertex2i(0,118);glVertex2i(0,238);glVertex2i(75,238
);glVertex2i(75,193);glVertex2i(345,193); 25
6. 26. Colegio de Estudios Científicos Y Tecnológicos del Estado de
MéxicoglVertex2i(345,118);glVertex2i(0,118);glEnd();glColor3f(0.0,1.0,0.0);glBegin(GL_POLYGON);
glVertex2i(405,119);glVertex2i(405,193);glVertex2i(540,193);glVertex2i(540,239);glVertex2i(1000,
239);glVertex2i(1000,119);glVertex2i(405,119);glEnd();glColor3f(1.0,0.52,0.05);glBegin(GL_QUADS
);glVertex2i(75,193);glVertex2i(75,313);glVertex2i(90,313);glVertex2i(90,193);glEnd();glColor3f(1.0
,0.0,0.0);glBegin(GL_POLYGON);glVertex2i(61,313);glVertex2i(75,345); 26
27. Colegio de Estudios Científicos Y Tecnológicos del Estado de
MéxicoglVertex2i(210,345);glVertex2i(210,313);glEnd();glColor3f(0.80,0.80,0.80);glBegin(GL_QUA
DS);glVertex2i(90,193);glVertex2i(90,313);glVertex2i(210,313);glVertex2i(210,193);glEnd();glColor
3f(1.0,1.0,0.28);glBegin(GL_QUADS);glVertex2i(210,193);glVertex2i(210,450);glVertex2i(540,450);g
lVertex2i(540,193);glEnd();glColor3f(0.95,0.47,0.0);glBegin(GL_QUADS);glVertex2i(210,313);glVert
ex2i(210,328);glVertex2i(540,328);glVertex2i(540,313);glEnd(); 27
28. Colegio de Estudios Científicos Y Tecnológicos del Estado de
MéxicoglColor3f(0.95,0.47,0.0);glBegin(GL_QUADS);glVertex2i(330,193);glVertex2i(330,434);glVer
tex2i(344,434);glVertex2i(344,193);glEnd();glColor3f(0.95,0.47,0.0);glBegin(GL_QUADS);glVertex2i
(405,434);glVertex2i(420,434);glVertex2i(420,193);glVertex2i(405,193);glEnd();glColor3f(0.77,0.0,0
.0);glBegin(GL_TRIANGLES);glVertex2i(316,434);glVertex2i(375,480);glVertex2i(434,434);glEnd();gl
Color3f(1.0,0.0,0.0);glBegin(GL_POLYGON);glVertex2i(164,449);glVertex2i(209,494);glVertex2i(539
,494); 28
29. Colegio de Estudios Científicos Y Tecnológicos del Estado de
MéxicoglVertex2i(584,449);glVertex2i(449,415);glVertex2i(374,480);glVertex2i(335,449);glEnd();gl
Flush();}int main (intargc, char** argv){glutInit(&argc, argv);glutInitDisplayMode(GLUT_SINGLE |
GLUT_RGBA);glutInitWindowSize(1000,1000);glutInitWindowPosition(0,0);glutCreateWindow("Cas
a");inicializa();glutDisplayFunc(dibuja);glutMainLoop();return 0;} 29
30. Colegio de Estudios Científicos Y Tecnológicos del Estado de
MéxicoOso//oso#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 proyeccionglLoadIdentity(); //Establece los parametros de proyecciongluOrtho2D(0.0,
500.0, 0.0, 500.0); //vista ortogonal}voidcirculoc(int x, int y, int t, int radio) 30
31. Colegio de Estudios Científicos Y Tecnológicos del Estado de México{ intangulo=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){intangulo=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 31
32. Colegio de Estudios Científicos Y Tecnológicos del Estado de
México{glClear(GL_COLOR_BUFFER_BIT);glColor3f(0.8,0.5,0.4); //borra
pantallacirculo(190,190,40);glColor3f(0.7,0.2,0.4);circulo(190,190,20);glColor3f(0.8,0.5,0.4);circulo
7. (315,315,40);glColor3f(0.7,0.2,0.4);circulo(315,315,20);glColor3f(0.8,0.5,0.4);circulo(190,315,40);gl
Color3f(0.7,0.2,0.4);circulo(190,315,20);glColor3f(0.8,0.5,0.4);circulo(315,190,40);glColor3f(0.7,0.2
,0.4);circulo(315,190,20);glColor3f(0.8,0.5,0.4);circulo(250,360,60);glColor3f(1.0,1.0,1.0);circulo(27
0,380,15);glColor3f(0.0,0.0,0.0);circulo(270,380,10);glColor3f(1.0,1.0,1.0); 32
33. Colegio de Estudios Científicos Y Tecnológicos del Estado de
Méxicocirculo(230,380,15);glColor3f(0.0,0.0,0.0);circulo(230,380,10);glColor3f(0.0,0.0,0.0);circulo(
250,340,15);glColor3f(0.8,0.5,0.4);circulo(300,420,25);glColor3f(0.7,0.2,0.4);circulo(300,420,10);gl
Color3f(0.8,0.5,0.4);circulo(200,420,25);glColor3f(0.7,0.2,0.4);circulo(200,420,10);glColor3f(0.7,0.2
,0.6);circulo(250,250,50);glColor3f(0.8,0.5,0.4);circuloc(250,250,5,50);glFlush(); //forza
dibujo}intmain (intargc, char** argv) //metodomain{glutInit(&argc, argv);
//incializaGLUTglutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo
devisualizaciónglutInitWindowSize(500,500); //tamaño de la ventana 33
34. Colegio de Estudios Científicos Y Tecnológicos del Estado de
MéxicoglutInitWindowPosition(100,100); //posicion inicial de la
ventanaglutCreateWindow("Ventana"); //nombre de la ventanainicializa();glutDisplayFunc(dibuja);
//Envia los graficos a la ventana devisualizaciónglutMainLoop(); //muestra todo y esperareturn 0;
//retorna un valor de cero} 34
35. Colegio de Estudios Científicos Y Tecnológicos del Estado de MéxicoCubo con Cubitos//cubo de
cubos#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 proyeccionglLoadIdentity();
//Establece los parametros de proyecciongluOrtho2D(0.0, 570.0, 0.0, 570.0); //vista
ortogonal}void cubo (int x, inty,intt,int l){ double a=.8,b=.6;glColor3f(0.0 , 0.0 ,
0.0);glBegin(GL_QUADS);glVertex2f(x,y);glVertex2f(x+t,y);glVertex2f(x+t,y+t);glVertex2f(x,y+t);glCo
lor3f(0.0 , 0.0 , 0.0);glVertex2f(x,y+t);glVertex2f(x+t,y+t);glVertex2f(x+t+(t*a),y+t+(t*b)); 35
36. Colegio de Estudios Científicos Y Tecnológicos del Estado de
MéxicoglVertex2f(x+(t*a),y+t+(t*b));glColor3f(0.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(1.0 , 0.0 ,
0.0);glLineWidth(.8);glBegin(GL_LINES);glVertex2f(x,y);glVertex2f(x+t,y);glVertex2f(x+t,y);glVertex2
f(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)); 36
37. Colegio de Estudios Científicos Y Tecnológicos del Estado de
MéxicoglVertex2f(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);gl
Vertex2f(x+t,y+t);glEnd(); }void dibuja(void) //funcion dibuja{glClear(GL_COLOR_BUFFER_BIT);
//borra pantallaglColor3f(1.0 , 0.0 , 0.0);//columna izquierda atrasfor(int
i=0;i<=10;i++){cubo(260,220+20*i,20,5);}//abajo
8. atrasfor(intj=0;j<=9;j++){cubo(280+20*j,220,20,5);}//arriba de atrasfor(int
j=0;j<=10;j++){cubo(260+20*j,420,20,5); 37
38. Colegio de Estudios Científicos Y Tecnológicos del Estado de México}//columna derecha
atrasfor(int i=0;i<=10;i++){cubo(480,220+20*i,20,5);}//los de enfrente//diagonales izquiercafor(int
k=0;k<=8;k++){cubo(245-20*k*.8,407-20*k*.6,20,5);cubo(245-20*k*.8,207-
20*k*.6,20,5);}//columna izquierda frentefor(int i=0;i<=10;i++){cubo(100,100+20*i,20,5);}//abajo
frentefor(int j=0;j<=10;j++){cubo(120+20*j,100,20,5);//arriba
frentecubo(120+20*j,300,20,5);}//diagonales derechafor(int k=0;k<=8;k++){cubo(466-20*k*.8,408-
20*k*.6,20,5);cubo(466-20*k*.8,208-20*k*.6,20,5); 38
39. Colegio de Estudios Científicos Y Tecnológicos del Estado de México}//columna derecha
frentefor(int i=0;i<=10;i++){cubo(320,100+20*i,20,5);}glFlush(); //forza dibujo}intmain (intargc,
char** argv) //metodomain{glutInit(&argc, argv);
//incializaGLUTglutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo
devisualizació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 devisualizaciónglutMainLoop(); //muestra todo y esperareturn 0;
//retorna un valor de cero} 39
40. Colegio de Estudios Científicos Y Tecnológicos del Estado de MéxicoMuñeco con
formas//muñeco#include<GL/glut.h>#include<GL/gl.h>#include<math.h>voidinicializa(void){glClea
rColor(1.0,1.0,1.0,0.0); //color de fondoglMatrixMode(GL_PROJECTION); //Modo de
proyeccionglLoadIdentity(); //Establece los parametros de proyecciongluOrtho2D(0.0, 500.0, 0.0,
500.0); //vista ortogonal 40
41. Colegio de Estudios Científicos Y Tecnológicos del Estado de México}voidcirculoc(int x, int y, int
t, int radio){ intangulo=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){
intangulo=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();} 41
42. Colegio de Estudios Científicos Y Tecnológicos del Estado de Méxicovoid dibuja(void) //funcion
dibuja{glClear(GL_COLOR_BUFFER_BIT);glColor3f(0.8,0.5,0.4); //borra
pantallacirculo(225,400,80);glColor3f(0.0,0.0,0.0);circulo(200,440,7);glColor3f(0.0,0.0,0.0);circulo(
240,440,7);glEnd();glColor3f(0.0 , 0.0 ,
0.0);glBegin(GL_TRIANGLES);glVertex2i(260,469);glVertex2i(250,499);glVertex2i(240,480);glEnd();g
lColor3f(0.0 , 0.0 ,
0.0);glBegin(GL_TRIANGLES);glVertex2i(240,480);glVertex2i(230,500);glVertex2i(220,480);glEnd();g
lColor3f(0.0 , 0.0 , 0.0);glBegin(GL_TRIANGLES); 42
9. 43. Colegio de Estudios Científicos Y Tecnológicos del Estado de
MéxicoglVertex2i(220,480);glVertex2i(200,500);glVertex2i(180,465);glEnd();glBegin(GL_LINES);glV
ertex2i(220,480);glEnd();glBegin(GL_POLYGON);glColor3f(0.8,0.1,0.1);glVertex2i(160,160);glVertex
2i(300,160);glVertex2i(300,320);glVertex2i(260,320);glVertex2i(225,280);glVertex2i(200,320);glVer
tex2i(160,320);glEnd();glBegin(GL_POLYGON);glVertex2i(160,320);glVertex2i(160,280);glVertex2i(
120,200);glVertex2i(80,200);glEnd();glBegin(GL_POLYGON);glVertex2i(300,320); 43
44. Colegio de Estudios Científicos Y Tecnológicos del Estado de
MéxicoglVertex2i(300,280);glVertex2i(340,200);glVertex2i(380,200);glEnd();//diglColor3f(1.0 , 1.0 ,
0.0);glBegin(GL_POLYGON);glVertex2i(160,140);glVertex2i(160,160);glVertex2i(300,160);glVertex2
i(300,140);glEnd();glColor3f(0.0 , 0.0 ,
0.0);glBegin(GL_POLYGON);glVertex2i(220,140);glVertex2i(220,160);glVertex2i(240,160);glVertex2
i(240,140);glEnd();glColor3f(0.0 , 0.2 ,
0.6);glBegin(GL_POLYGON);glVertex2i(160,140);glVertex2i(100,40);glVertex2i(160,20);glVertex2i(2
25,140); 44
45. Colegio de Estudios Científicos Y Tecnológicos del Estado de MéxicoglEnd();glColor3f(0.0 , 0.2 ,
0.6);glBegin(GL_POLYGON);glVertex2i(225,140);glVertex2i(280,20);glVertex2i(340,40);glVertex2i(3
00,140);glEnd();glColor3f(0.0 , 0.0 ,
0.0);glBegin(GL_TRIANGLES);glVertex2i(275,20);glVertex2i(380,10);glVertex2i(340,40);glEnd();glCol
or3f(0.0 , 0.0 ,
0.0);glBegin(GL_TRIANGLES);glVertex2i(160,20);glVertex2i(100,40);glVertex2i(50,20);glEnd();glFlus
h(); //forza dibujo}intmain (intargc, char** argv) //metodomain{glutInit(&argc, argv); //incializa
GLUT 45
46. Colegio de Estudios Científicos Y Tecnológicos del Estado de
MéxicoglutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo
devisualizació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 devisualizaciónglutMainLoop(); //muestra todo y esperareturn 0;
//retorna un valor de cero}Animación circulo#include<unistd.h>#include<GL/glut.h> 46
47. Colegio de Estudios Científicos Y Tecnológicos del Estado de
México#include<GL/gl.h>#include<math.h>int x=1, y=1, z=1, a=1;void
inicializa(void){glClearColor(0.0,0.0,1.0,0.0);glMatrixMode(GL_PROJECTION);glLoadIdentity();gluOr
tho2D(0.0, 900.0, 0.0, 900.0);// el ancho y largo de nuestra pantalla}void circulo(int x, int y, int
radio){ intangulo=0; glBegin(GL_TRIANGLE_FAN); glColor3f (0.5, 0.5, 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);if(x>=1 && x<800){circulo(5+1*x,900,15); 47
48. Colegio de Estudios Científicos Y Tecnológicos del Estado de MéxicoglFlush();x++;}if(y>=1 &&
y<800 && x==800){circulo(805,900-y,15);glFlush();y++;}if(z>=1 && z<800 && x==800
10. &&y==800){circulo(805-z,100,15);glFlush();z++;}if(a>=1 && a<800 && x==800 && y==800 &&
z==800){circulo(5,100+a,15);glFlush();a++;if(a==800){x=1; y=1; z=1;}}glutSwapBuffers();}intmain
(intargc, char** argv){glutInit(&argc, argv); 48
49. Colegio de Estudios Científicos Y Tecnológicos del Estado de
MéxicoglutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA|
GLUT_DEPTH);glutInitWindowSize(1000,1000);glutInitWindowPosition(10,10);glutCreateWindow("
Movimiento de
bolita");inicializa();glutDisplayFunc(dibuja);glutIdleFunc(dibuja);glutMainLoop();return
0;}Animación Sistema
solar#include<unistd.h>#include<GL/glut.h>#include<GL/gl.h>#include<math.h> 49
50. Colegio de Estudios Científicos Y Tecnológicos del Estado de Méxicoint rad=100;double
ang=0;double a=0;double b=0;double c=0;double d=0;double e=0;double f=0;double g=0;void
inicializa(void){glClearColor(0.0,0.0,0.0,0.0);glMatrixMode(GL_PROJECTION);glLoadIdentity();gluOr
tho2D(0.0, 1000.0, 0.0, 1000.0);// el ancho y largo de nuestra pantalla}void circulo(int x, int y, int
radio){ intangulo=0; glBegin(GL_TRIANGLE_FAN); glVertex2f(x,y);for (angulo=0;angulo<=360;
angulo++){ glVertex2f(x + sin(angulo) * radio, y +cos(angulo) * radio);} glEnd();} 50
51. Colegio de Estudios Científicos Y Tecnológicos del Estado de Méxicovoidcirculoc(int x, int y, int
t, int radio){ intangulo=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<=100; 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,1.0);circuloc(500,500,1,100);circuloc(500,500,1,2
00);circuloc(500,500,1,300);circuloc(500,500,1,400);circuloc(500,500,1,55);circuloc(500,500,1,150)
;circuloc(500,500,1,250);circuloc(500,500,1,350); 51
52. Colegio de Estudios Científicos Y Tecnológicos del Estado de
MéxicoglColor3f(1.0,1.0,1.0);circulo( 500+ sin(ang) * rad,500 - cos(ang) * rad,10); //funcion
circuloglColor3f(1.0,0.0,0.0);circulo( 500+ sin(a) * 55,500 + cos(a) *
55,10);glColor3f(0.0,0.0,1.0);circulo( 500+ sin(b) * 150,500 - cos(b) *
150,13);glColor3f(0.0,1.0,0.0);circulo( 500+ sin(c) * 200,500 + cos(c) *
200,10);glColor3f(0.0,1.0,0.9);circulo( 500+ sin(d) * 250,500 - cos(d) *
250,20);glColor3f(0.0,1.0,1.0);circulo( 500+ sin(g) * 300,500 + cos(g) *
300,10);glColor3f(0.0,1.0,0.5);circulo( 500+ sin(e) * 350,500 - cos(e) *
350,20);glColor3f(1.0,1.0,0.0);circulo( 500+ sin(f) * 400,500 + cos(f) *
400,10);ang=ang+0.06;a=a+0.07;b=b+0.01;c=c+0.03;d=d+0.05;e=e+0.04;f=f+0.05;g=g+0.06;
//velocidad entre mas grande masrapido y entre menos maslento 52
53. Colegio de Estudios Científicos Y Tecnológicos del Estado de Méxicofor(int
j=1;j<=10000000;j++){}//pausaif(ang==360){ang=0;}// se repite
idefinidamenteglColor3f(1.0,0.9,0.0);circulo(500,500,35);//solglFlush(); //forzar
dibujadoglutSwapBuffers(); //y esto}intmain (intargc, char** argv){glutInit(&argc,
11. argv);glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA|
GLUT_DEPTH);//estotambienglutInitWindowSize(1000,1000);glutInitWindowPosition(10,10);glutCr
eateWindow("Sistema Solar");inicializa();glutDisplayFunc(dibuja);glutIdleFunc(dibuja);//esto es lo
que cambiaglutMainLoop();return 0;} 53
54. Colegio de Estudios Científicos Y Tecnológicos del Estado de MéxicoMovimiento en
Ocho#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.0,0.0,0.0,0.0);glMatrixMode(GL_PROJECTION);glLoadIdentity();gluOr
tho2D(0.0, 1000.0, 0.0, 1000.0);// el ancho y largo de nuestra pantalla}void circulo(int x, int y, int
radio){ intangulo=0; glBegin(GL_TRIANGLE_FAN); glVertex2f(x,y); 54
55. Colegio de Estudios Científicos Y Tecnológicos del Estado de México 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
(1.0,0.9, 0.0);circulo(500,300,250);glColor3f (0.0,0.0, 0.0);circulo(500,300,150);glColor3f (1.0,0.9,
0.0);circulo(500,700,250);glColor3f (0.0,0.0, 0.0);circulo(500,700,150);//ocho//la otra
bolitaif(a>=6.15 && a<=12.41){circulo(500 - sin (a)*200,700 - cos(a)*200,40);a=a+
0.031;}else{circulo(500 - sin (b) *200,300 - cos(b)*-200,40);b=b +
0.1;if(b>12.4){a=6.15;b=6.15;}for(int j=0; j<=10000000; j++) {}} 55
56. Colegio de Estudios Científicos Y Tecnológicos del Estado de México// se repite
idefinidamenteglFlush(); //forzar dibujadoglutSwapBuffers(); //y esto}intmain (intargc, char**
argv){glutInit(&argc, argv);glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA|
GLUT_DEPTH);//estotambienglutInitWindowSize(1000,1000);glutInitWindowPosition(10,10);glutCr
eateWindow("Movimiento en 8");inicializa();glutDisplayFunc(dibuja);glutIdleFunc(dibuja);//esto es
lo que cambiaglutMainLoop();return 0;} 56
57. Colegio de Estudios Científicos Y Tecnológicos del Estado de MéxicoSemáforoNombre
3D#include
<GL/gl.h>#include<GL/glu.h>#include<GL/glut.h>#include<stdio.h>#include<math.h>#include<stdl
ib.h>GLfloatanguloEsfera = 0.0f;GLfloat girax=0,giray=0,zoom=0,e,f;GLboolean malla=GL_FALSE,
ejes=GL_TRUE;void mover(void){ glTranslated(0,0,zoom); glRotated(girax,1.0,0.0,0.0);
glRotated(giray,0.0,1.0,0.0); }voidcreaMalla(void){ 57
58. Colegio de Estudios Científicos Y Tecnológicos del Estado de México int i, long_eje=10;
glColor3f(1.0,1.0,0.0); glBegin(GL_LINES); for(i=-long_eje;i<=long_eje;i++){ glVertex3f(i,-
long_eje,0); glVertex3f(i,long_eje,0); glVertex3f(-long_eje,i,0); glVertex3f(long_eje,i,0);
glVertex3f(i,0,-long_eje); glVertex3f(i,0,long_eje); glVertex3f(-long_eje,0,i);
glVertex3f(long_eje,0,i); } glEnd(); }voidcreaEjes(void){ glColor3f(0.0,0.0,0.0); glBegin(GL_LINES);
glColor3f(0.0,0.0,1.0); glVertex3f(-11.0,0.0,0.0); glVertex3f(11.0,0.0,0.0); glColor3f(1.0,0.0,0.0);
glVertex3f(0.0,-11.0,0.0); glVertex3f(0.0,11.0,0.0); 58
12. 59. Colegio de Estudios Científicos Y Tecnológicos del Estado de México glColor3f(0.0,1.0,0.0);
glVertex3f(0.0,0.0,-11.0); glVertex3f(0.0,0.0,11.0); glEnd(); glBegin(GL_TRIANGLES);
glColor3f(0.0,0.0,1.0); glVertex3f(11.0,0.0,0.0);glVertex3f(10.5,0.0,-.50); glVertex3f(10.5,0.0,.50);
glColor3f(1.0,0.0,0.0); glVertex3f(0.0,11.0,0.0); glVertex3f(-.50,10.5,0.0); glVertex3f(.50,10.5,0.0);
glColor3f(0.0,1.0,0.0); glVertex3f(0.0,0.0,11.0); glVertex3f(-.50,0.0,10.5); glVertex3f(.50,0.0,10.5);
//puntas otras glColor3f(0.0,0.0,1.0); glVertex3f(-11.0,0.0,0.0); glVertex3f(-10.5,0.0,.50);
glVertex3f(-10.5,0.0,-.50); glColor3f(1.0,0.0,0.0); glVertex3f(0.0,-11.0,0.0); glVertex3f(.50,-
10.5,0.0); 59
60. Colegio de Estudios Científicos Y Tecnológicos del Estado de México glVertex3f(-.50,-
10.5,0.0);glColor3f(0.0,1.0,0.0); glVertex3f(0.0,0.0,-11.0); glVertex3f(.50,0.0,-10.5); glVertex3f(-
.50,0.0,-10.5); glEnd(); }voidinit ( void ){ glClearColor(1.0,1.0,1.0,0.0) ;// Definimos el negro como
color de fondo glEnable(GL_DEPTH_TEST); // Activamos el z-Buffer glEnable(GL_LIGHTING); //
Activamos la iluminación glEnable(GL_LIGHT0); // Activamos la luz 0
glMatrixMode(GL_PROJECTION); // set theviewvolumeshapeglLoadIdentity(); glOrtho(-15,15,-
15,15,-30,30); glMatrixMode(GL_MODELVIEW); // position and aimthe camera glLoadIdentity();
gluLookAt(5.0, 5.0, 5.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0);}void dibuja( void ){glClear (
GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); 60
61. Colegio de Estudios Científicos Y Tecnológicos del Estado de México
glEnable(GL_DEPTH_TEST); // Activamos el z-Buffer glEnable(GL_LIGHTING); // Activamos la
iluminación glEnable(GL_LIGHT0); // Activamos la luz 0 //glShadeModel(GL_FLAT);glShadeModel
(GL_SMOOTH);// Cargamos la matriz identidad para reiniciar las transformaciones/* floatangulo;
inti;glLineWidth(20);glBegin(GL_LINES); glColor3d(1,1,1);for (i=0; i<360; i+=10) { angulo =
(GLfloat)i*3.14159f/180.0f; // grados a radianes glColor3d(1,1,1); glVertex3i(0,0,-
3);glVertex3f(0+cos(angulo)*45, 0+sin(angulo)*45,0);}glEnd();*/ // Colocamos una
luzglLightfv(GL_LIGHT0,GL_DIFFUSE,(GLfloat []){1.0f,1.0f,1.0f,0.0f}); // Color de
laluzglLightfv(GL_LIGHT0,GL_AMBIENT,(GLfloat []){1.0, 1.0, 1.0, 4.0}); // Luz
ambienteglLightfv(GL_LIGHT0,GL_POSITION,(GLfloat []){0.0f,12.0f,5.0f,0.0f}); // Posiciónde la luz
61
62. Colegio de Estudios Científicos Y Tecnológicos del Estado de
MéxicoglLightfv(GL_LIGHT0,GL_EMISSION,(GLfloat []){0.5,0.5,0.5,1.0});//glShadeModel
(GL_SMOOTH);// esferaglPushMatrix();mover();if(malla) creaMalla();if(ejes)
creaEjes();//glRotatef(anguloEsfera, 1.0f, 1.0f,0.0f);glColor3f(1.0,1.0,0.0);//AglTranslatef(-7.2,0.0,
0.0);glutSolidCube(1);glTranslatef(0.0,-0.9, 0.0);glutSolidCube(1);glTranslatef(0.9,0.0,
0.0);glutSolidCube(1);glTranslatef(0.9,0.0, 0.0);glutSolidCube(1);glTranslatef(0.0,-0.3,
0.0);glutSolidCube(1);glTranslatef(0.0,1.2, 0.0);glutSolidCube(1);glTranslatef(-0.9,0.2,
0.0);glutSolidCube(1);//l 62
63. Colegio de Estudios Científicos Y Tecnológicos del Estado de MéxicoglTranslatef(2.3,-1.6,
0.0);glutSolidCube(1);glTranslatef(0.0,0.9, 0.0);glutSolidCube(1);glTranslatef(0.0,0.9,
0.0);glutSolidCube(1);glTranslatef(0.0,0.9, 0.0);glutSolidCube(1);//iglTranslatef(1.4,-2.7,
13. 0.0);glutSolidCube(1);glTranslatef(0.0,0.9, 0.0);glutSolidCube(1);glTranslatef(0.0,1.2,
0.0);glutSolidCube(1);//nglTranslatef(1.4,-1.0, 0.0);glutSolidCube(1);glTranslatef(0.9,0.0,
0.0);glutSolidCube(1);glTranslatef(0.9,0.0, 0.0);glutSolidCube(1);glTranslatef(0.0,-0.9,
0.0);glutSolidCube(1);glTranslatef(-1.6,0.0, 0.0); 63
64. Colegio de Estudios Científicos Y Tecnológicos del Estado de MéxicoglutSolidCube(1);// AQUI
PONES TU NOMBRE//AQUI//AQUI//AQUI//AQUI//AQUI//AQUI//AQUI//AQUIglPopMatrix
();glFlush();glutSwapBuffers ();//anguloEsfera+=2.0f;}voidreshape(int w, int
h){glClearColor(1.0,1.0,1.0,0.0);glMatrixMode(GL_PROJECTION);glLoadIdentity();glOrtho(-15,15,-
15,15,-30,30);glMatrixMode(GL_MODELVIEW);glLoadIdentity();glClear(GL_DEPTH_TEST);}void
activo(intx,int y){// x= e; //y= f;girax=y; 64
65. Colegio de Estudios Científicos Y Tecnológicos del Estado de Méxicogiray=700-x;
glutPostRedisplay(); }void teclado(unsignedcharkey, int x, int y){ switch(key){ case 27: exit(0); case
+: zoom++; break; case -: zoom--; break; case p: glMatrixMode(GL_PROJECTION); glLoadIdentity();
gluPerspective(45,1,10,100); zoom=-40; break; case o: glMatrixMode(GL_PROJECTION);
glLoadIdentity(); glOrtho(-15,15,-15,15,-30,30); 65
66. Colegio de Estudios Científicos Y Tecnológicos del Estado de México zoom=0; break; case m:
malla= !malla; break; case e: ejes= !ejes;default: break; } glutPostRedisplay(); }void flechas(intkey,
int x, int y){switch(key){ case GLUT_KEY_LEFT:giray-=15;break; case GLUT_KEY_RIGHT: giray+=15;
break; case GLUT_KEY_UP:girax-=15; break; case GLUT_KEY_DOWN:girax+=15; 66
67. Colegio de Estudios Científicos Y Tecnológicos del Estado de México break; default: break;}
glutPostRedisplay(); }intmain ( intargc, char** argv ){glutInit (&argc, argv);glutInitDisplayMode
(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);glutInitWindowSize
(600,600);glutInitWindowPosition (100,100);glutCreateWindow ("Objetos 3D");//init (
);glutDisplayFunc (dibuja);//glutIdleFunc(dibuja);glutReshapeFunc ( reshape
);glutKeyboardFunc(teclado);glutSpecialFunc(flechas);glutMotionFunc(activo);glutMainLoop(
);return 0;} 67
68. Colegio de Estudios Científicos Y Tecnológicos del Estado de MéxicoSemáforo. SEMAFOROEn
esta práctica realizaremos un semáforo en el cual los colores se cambiensegún la ubicación de
dicho semáforo, para ello utilizaremos, rectángulos ycírculos así como se muestra a
continuación:Código:#include<unistd.h> 68
69. Colegio de Estudios Científicos Y Tecnológicos del Estado de
México#include<GL/glut.h>#include<GL/gl.h>#include<math.h>int rad=100;double
ang=0,a=0,b=0,c=0,d=0,e=0,f=0,g=0;void
inicializa(void){glClearColor(0.2,0.6,0.8,1.0);glMatrixMode(GL_PROJECTION);glLoadIdentity();gluOr
tho2D(0.0, 500.0, 0.0, 500.0);// el ancho y largo de nuestra pantalla}voidcirculoc(int x, int y, int t,
int radio){ intangulo=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){ 69
14. 70. Colegio de Estudios Científicos Y Tecnológicos del Estado de México intangulo=0;
glBegin(GL_TRIANGLE_FAN); glVertex2f(x,y); for (angulo=0;angulo<=360; angulo++){ glVertex2f(x +
sin(angulo) *radio, y + cos(angulo) * radio);} glEnd();}void
dibuja(void){glClear(GL_COLOR_BUFFER_BIT |
GL_DEPTH_BUFFER_BIT);//estoglBegin(GL_QUADS);//Cuadros fondo semaforoglColor3f(0.2 , 0.6 ,
0.);glVertex2i(170,437);glVertex2i(320,437);glVertex2i(320,182);glVertex2i(170,182);glVertex2i(22
9,183);glVertex2i(278,183);glVertex2i(278,3);glVertex2i(229,3);glEnd();glColor3f(0.0,0.0,0.0);//Luc
es Rojacirculo(247,226,34); 70
71. Colegio de Estudios Científicos Y Tecnológicos del Estado de
MéxicoglColor3f(0.0,0.0,0.0);//Luces Amarrillacirculo(247,302,34);glColor3f(0.0,0.0,0.0);//Luces
Verdecirculo(247,381,34);a=a+1; //velocidad entre mas grande masrapido y entre menos mas
lentofor(int j=1;j<=10000000;j++){}//pausaif(a>1 && a<20){glColor3f(1.0,0.0,0.0);//Luces
Rojacirculo(247,381,34);}// se repite idefinidamenteif(a>20 &&
a<40){glColor3f(0.0,1.0,0.0);//Luces Rojacirculo(247,226,34);}// se repite idefinidamenteif(a>40
&& a<50){glColor3f(1.0,1.0,0.0);//Luces Rojacirculo(247,302,34);}// se repite
idefinidamenteif(a>55 && a<50){glColor3f(1.0,1.0,0.0);//Luces Roja 71
72. Colegio de Estudios Científicos Y Tecnológicos del Estado de Méxicocirculo(247,302,34);}// se
repite idefinidamenteif(a>60 && a<55){glColor3f(1.0,1.0,0.0);//Luces Rojacirculo(247,302,34);}//
se repite idefinidamenteif(a>60){a=0;}glFlush(); //forzar dibujadoglutSwapBuffers(); //y
esto}intmain (intargc, char** argv){glutInit(&argc, argv);glutInitDisplayMode(GLUT_DOUBLE |
GLUT_RGBA| GLUT_DEPTH);//esto
tambienglutInitWindowSize(500,500);glutInitWindowPosition(10,10);glutCreateWindow("Ventana
");inicializa();glutDisplayFunc(dibuja);glutIdleFunc(dibuja);//esto es lo que
cambiaglutMainLoop();return 0; 72
73. Colegio de Estudios Científicos Y Tecnológicos del Estado de México} 73