Manual open gl

Post on 12-Jul-2015

201 views 4 download

Tags:

Transcript of Manual open gl

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 1

UTILIZACION DE SOFTWARE DE

DISEÑO

MANUAL DE OPEN GL

PROFESOR: RENE DOMINGUEZ ESCALONA

ALUMNOS: EDUARDO TAPIA HERNANDEZ Y

CESAR RAFAEL ESCOBAR SANCHEZ

GRUPO: 303

TURNO: MATUTINO

ESPECIALIDAD: INFORMATICA

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 2

INTRODUCCION: En este manual podremos dibujar en Open GL

atravez de códigos en los cuales se apreciaran

desde los más sencillos como hacer formas

geométricas tales como el rectángulo, triangulo,

circulo, cuadrado etc. Hasta los más complicados

como hacer figuras en 3D con movimiento

Este manual será de gran ayuda para aquellos que

cursen la materia de informática ya que viene

mucha información acerca de este programa de

Open GL.

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 3

Tablero de ajedrez

En esta práctica tenemos que hacer un tablero de

ajedrez en el programa de Open GL Dev c++ no

olvidemos que cada tablero de ajedrez tiene 8

cuadrados x 8 cuadrados así que tenemos que ser

muy precisos con nuestras coordenadas y poner

un cuadrado de color negro y uno de color blanco

tal y como es un ajedrez real.

Borrador con coordenadas utilizadas:

glBegin(GL_POINTS)

glPointSize();

Código:

//mi primer ventana

#include <GL/glut.h>

#include <GL/gl.h>

#include <GL/glu.h>

void inicializa(void)

{

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 4

glClearColor(0.0,0.0,1.0,0.0); //color de fondo

glMatrixMode(GL_PROJECTION); //Modo de proyeccion

glLoadIdentity(); //Establece los parametros de proyeccion

gluOrtho2D(0.0, 1050.0, 0.0, 1000.0); //vista ortogonal

}

void dibuja(void) //funcion dibuja

{

glClear(GL_COLOR_BUFFER_BIT); //borra pantalla

glColor3f(0.0 , 0.0 , 0.0);

glPointSize(60);

glBegin(GL_POINTS);

glVertex2i(100,100);

glVertex2i(347,100);

glVertex2i(597,100);

glVertex2i(848,100);

glVertex2i(220,220);

glVertex2i(473,220);

glVertex2i(723,220);

glVertex2i(970,220);

glVertex2i(100,340);

glVertex2i(347,340);

glVertex2i(597,340);

glVertex2i(848,340);

glVertex2i(220,460);

glVertex2i(473,460);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 5

glVertex2i(723,460);

glVertex2i(970,460);

glVertex2i(100,580);

glVertex2i(347,580);

glVertex2i(597,580);

glVertex2i(848,580);

glVertex2i(220,700);

glVertex2i(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);

glVertex2i(723,100);

glVertex2i(970,100);

glVertex2i(100,220);

glVertex2i(347,220);

glVertex2i(597,220);

glVertex2i(848,220);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 6

glVertex2i(220,340);

glVertex2i(473,340);

glVertex2i(723,340);

glVertex2i(970,340);

glVertex2i(100,460);

glVertex2i(347,460);

glVertex2i(597,460);

glVertex2i(848,460);

glVertex2i(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();

glFlush(); //forza dibujo

}

int main (int argc, char** argv) //metodo main

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 7

{

glutInit(&argc, argv); //incializa GLUT

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de

visualización

glutInitWindowSize(500,500); //tamaño de la ventana

glutInitWindowPosition(0,0); //posicion inicial de la ventana

glutCreateWindow("MI primer ventana"); //nombre de la ventana

inicializa();

glutDisplayFunc(dibuja); //Envia los graficos a la ventana de visualización

glutMainLoop(); //muestra todo y espera

return 0; //retorna un valor de cero

}

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 8

Estrella

En esta nueva práctica tenemos que hacer una

estrella de 5 picos utilizando la instrucción ya

antes mencionada gl lines.

Borrador con coordenadas utilizadas:

glBegin(Gl _LINES);

Código:

//mi primer ventana

#include <GL/glut.h>

#include <GL/gl.h>

#include <GL/glu.h>

void inicializa(void)

{

glClearColor(1.0,0.0,1.0,0.0); //color de fondo

glMatrixMode(GL_PROJECTION); //Modo de proyeccion

glLoadIdentity(); //Establece los parametros de proyeccion

gluOrtho2D(0.0, 1000.0, 0.0, 1000.0); //vista ortogonal

}

void dibuja(void) //funcion dibuja

{

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 9

glClear(GL_COLOR_BUFFER_BIT); //borra pantalla

glColor3f(0.0 , 0.0 , 0.0);

glBegin(GL_LINES);

glVertex2i(400,700);

glVertex2i(700,100);

glVertex2i(700,100);

glVertex2i(100,500);

glVertex2i(100,500);

glVertex2i(800,500);

glVertex2i(800,500);

glVertex2i(200,100);

glVertex2i(200,100);

glVertex2i(400,700);

glEnd();

glFlush(); //forza dibujo

}

int main (int argc, char** argv) //metodo main

{

glutInit(&argc, argv); //incializa GLUT

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de

visualización

glutInitWindowSize(500,500); //tamaño de la ventana

glutInitWindowPosition(0,0); //posicion inicial de la ventana

glutCreateWindow("MI primer ventana"); //nombre de la ventana

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 10

inicializa();

glutDisplayFunc(dibuja); //Envia los graficos a la ventana de visualización

glutMainLoop(); //muestra todo y espera

return 0; //retorna un valor de cero

}

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 11

Cubo con líneas

En esta ocasión realizaremos un cubo como en

efecto 3D utilizando la misma función de la

actividad pasada.

Borrador con coordenadas utilizadas:

glBegin(GL_LINES)

Código

//mi primer ventana

#include <GL/glut.h>

#include <GL/gl.h>

#include <GL/glu.h>

void inicializa(void)

{

glClearColor(1.0,0.0,1.0,0.0); //color de fondo

glMatrixMode(GL_PROJECTION); //Modo de proyeccion

glLoadIdentity(); //Establece los parametros de proyeccion

gluOrtho2D(0.0, 1000.0, 0.0, 1000.0); //vista ortogonal

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 12

}

void dibuja(void) //funcion dibuja

{

glClear(GL_COLOR_BUFFER_BIT); //borra pantalla

glColor3f(0.0 , 0.0 , 0.0);

glBegin(GL_LINES);

glVertex2i(200,300);

glVertex2i(400,300);

glVertex2i(200,300);

glVertex2i(200,500);

glVertex2i(400,300);

glVertex2i(400,500);

glVertex2i(400,500);

glVertex2i(200,500);

glVertex2i(200,300);

glVertex2i(300,400);

glVertex2i(400,300);

glVertex2i(500,400);

glVertex2i(300,400);

glVertex2i(500,400);

glVertex2i(500,400);

glVertex2i(500,600);

glVertex2i(500,600);

glVertex2i(300,600);

glVertex2i(300,600);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 13

glVertex2i(300,400);

glVertex2i(300,600);

glVertex2i(200,500);

glVertex2i(400,500);

glVertex2i(500,600);

glEnd();

glFlush(); //forza dibujo

}

int main (int argc, char** argv) //metodo main

{

glutInit(&argc, argv); //incializa GLUT

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de

visualización

glutInitWindowSize(500,500); //tamaño de la ventana

glutInitWindowPosition(0,0); //posicion inicial de la ventana

glutCreateWindow("MI primer ventana"); //nombre de la ventana

inicializa();

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 14

glutDisplayFunc(dibuja); //Envia los graficos a la ventana de visualización

glutMainLoop(); //muestra todo y espera

return 0; //retorna un valor de cero

}

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 15

Pirámide

En esta nueva practica tenemos que hacer una

pirámide que se vea como si alguien la estuviera

viendo desde arriba pueden ser varios cuadrados

del más grande al más chico o al contrario pero

tienen que ser 10 cuadrados.

Borrador con coordenadas utilizadas:

glBegin(GL_LINES);

for(i=1;i<=11;i++)

Código

#include <GL/glut.h>

#include <GL/gl.h>

#include <GL/glu.h>

void inicializa(void)

{

glClearColor(1.0,0.0,0.0,0.0); //color de fondo

glMatrixMode(GL_PROJECTION); //Modo de proyeccion

glLoadIdentity(); //Establece los parametros de proyeccion

gluOrtho2D(0.0, 1000.0, 0.0, 1000.0); //vista ortogonal

}

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 16

void dibuja(void) //funcion dibuja

{

int i,a=25;

glClear(GL_COLOR_BUFFER_BIT); //borra pantalla

glColor3f(1.0 , 1.0 , 1.0);

glLineWidth(2);

glBegin(GL_LINES);

//valor inicial ---- valor final o condicion ---- incremento

for(i=1;i<=11;i++){

//abajo

glVertex2i (250-a*i,250-a*i);

glVertex2i (270+a*i,250-a*i);

//derecha

glVertex2i (270+a*i,250-a*i);

glVertex2i (270+a*i,270+a*i);

//izquierda

glVertex2i (250-a*i,250-a*i);

glVertex2i (250-a*i,270+a*i);

//arriba

glVertex2i (250-a*i,270+a*i);

glVertex2i (270+a*i,270+a*i);

}

glEnd();

glFlush(); //forza dibujo

}

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 17

int main (int argc, char** argv) //metodo main

{

glutInit(&argc, argv); //incializa GLUT

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de

visualización

glutInitWindowSize(400,400); //tamaño de la ventana

glutInitWindowPosition(0,0); //posicion inicial de la ventana

glutCreateWindow("Cuadros"); //nombre de la ventana

inicializa();

glutDisplayFunc(dibuja); //Envia los graficos a la ventana de visualización

glutMainLoop(); //muestra todo y espera

return 0; //retorna un valor de cero

}

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 18

Cubo delineado

Esta vez haremos un cubo como ya lo habíamos

hecho antes pero esta vez cada una de sus caras

tendrá que ir de un color deferente y el grosor de

las líneas tendrá que cambiar.

Borrador con coordenadas utilizadas

glBegin(GL_QUADS);

glLineWidth();

glBegin(GL_LINES);

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,0.0,0.0); //color de fondo

glMatrixMode(GL_PROJECTION); //Modo de proyeccion

glLoadIdentity(); //Establece los parametros de proyeccion

gluOrtho2D(0.0, 1000.0, 0.0, 1000.0); //vista ortogonal

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 19

}

void dibuja(void) //funcion dibuja

{

glClear(GL_COLOR_BUFFER_BIT); //borra pantalla

glBegin(GL_QUADS);

glColor3f(1.0 , 0.0 , 0.0);

glVertex2i(200,300);

glVertex2i(400,300);

glVertex2i(400,500);

glVertex2i(200,500);

glColor3f(0.0 , 0.0 , 1.0);

glVertex2i(400,300);

glVertex2i(500,400);

glVertex2i(500,600);

glVertex2i(400,500);

glColor3f(0.0 , 1.0 , 1.0);

glVertex2i(400,500);

glVertex2i(500,600);

glVertex2i(300,600);

glVertex2i(200,500);

glEnd();

glColor3f(0.0 , 0.0 , 0.0);

glLineWidth(6);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 20

glBegin(GL_LINES);

glVertex2i(200,300);

glVertex2i(400,300);

glVertex2i(200,300);

glVertex2i(200,500);

glVertex2i(400,300);

glVertex2i(400,500);

glVertex2i(400,500);

glVertex2i(200,500);

glVertex2i(200,300);

glVertex2i(300,400);

glVertex2i(400,300);

glVertex2i(500,400);

glVertex2i(300,400);

glVertex2i(500,400);

glVertex2i(500,400);

glVertex2i(500,600);

glVertex2i(500,600);

glVertex2i(300,600);

glVertex2i(300,600);

glVertex2i(300,400);

glVertex2i(300,600);

glVertex2i(200,500);

glVertex2i(400,500);

glVertex2i(500,600);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 21

glEnd();

glFlush(); //forza dibujo

}

int main (int argc, char** argv) //metodo main

{

glutInit(&argc, argv); //incializa GLUT

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de

visualización

glutInitWindowSize(500,500); //tamaño de la ventana

glutInitWindowPosition(0,0); //posicion inicial de la ventana

glutCreateWindow("MI primer ventana"); //nombre de la ventana

inicializa();

glutDisplayFunc(dibuja); //Envia los graficos a la ventana de visualización

glutMainLoop(); //muestra todo y espera

return 0; //retorna un valor de cero

}

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 22

Muñeco con triángulos

Esta vez haremos un muñeco en forma de

humano pero de puros triángulos utilizaremos una

nueva instrucción.

Borrador con coordenadas utilizadas:

glBegin(GL_TRIANGLES);

glBegin(GL_LINES);

glBegin(GL_QUADS);

Código

//mi primer ventana

#include <GL/glut.h>

#include <GL/gl.h>

#include <GL/glu.h>

void inicializa(void)

{

glClearColor(0.0,0.0,1.0,0.0); //color de fondo

glMatrixMode(GL_PROJECTION); //Modo de proyeccion

glLoadIdentity(); //Establece los parametros de proyeccion

gluOrtho2D(0.0, 1000.0, 0.0, 1000.0); //vista ortogonal

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 23

}

void dibuja(void) //funcion dibuja

{

glClear(GL_COLOR_BUFFER_BIT); //borra pantalla

glColor3f(0.0 , 1.0 , 0.0);

glBegin(GL_QUADS);

glVertex2i(360,700);

glVertex2i(360,370);

glVertex2i(630,370);

glVertex2i(630,700);

glEnd();

glColor3f(1.0 , 1.0 , 0.0);

glBegin(GL_TRIANGLES);

glVertex2i(470,700);

glVertex2i(500,650);

glVertex2i(530,700);

glEnd();

glColor3f(1.0 , 1.0 , 0.0);

glBegin(GL_TRIANGLES);

glVertex2i(400,900);

glVertex2i(500,700);

glVertex2i(600,900);

glEnd();

glColor3f(1.0 , 0.0 , 0.0);

glBegin(GL_TRIANGLES);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 24

glVertex2i(310,900);

glVertex2i(500,990);

glVertex2i(690,900);

glEnd();

glColor3f(0.0 , 1.0 , 0.0);

glBegin(GL_QUADS);

glVertex2i(0,100);

glVertex2i(0,0);

glVertex2i(1000,0);

glVertex2i(1000,100);

glEnd();

glColor3f(1.0 , 1.0 , 0.0);

glBegin(GL_TRIANGLES);

glVertex2i(450,50);

glColor3f(1.0 ,1.0 ,1.0);

glVertex2i(450,370);

glVertex2i(380,300);

glEnd();

glColor3f(1.0 , 0.0 , 1.0);

glBegin(GL_TRIANGLES);

glVertex2i(450,50);

glVertex2i(370,110);

glVertex2i(290,50);

glEnd();

glColor3f(0.0 ,1.0 ,0.0);

glBegin(GL_TRIANGLES);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 25

glVertex2i(360,700);

glColor3f(1.0 ,1.0 ,0.0);

glVertex2i(200,540);

glVertex2i(250,450);

glEnd();

glColor3f(0.0 ,1.0 ,0.0);

glBegin(GL_TRIANGLES);

glVertex2i(630,700);

glColor3f(1.0 ,1.0 ,0.0);

glVertex2i(800,530);

glVertex2i(750,440);

glEnd();

glColor3f(1.0 ,1.0 ,0.0);

glBegin(GL_TRIANGLES);

glVertex2i(190,600);

glVertex2i(200,540);

glVertex2i(130,500);

glEnd();

glColor3f(1.0 ,1.0 ,0.0);

glBegin(GL_TRIANGLES);

glVertex2i(820,600);

glVertex2i(800,530);

glVertex2i(860,470);

glEnd();

glColor3f(1.0 ,1.0 ,0.0);

glBegin(GL_TRIANGLES);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 26

glVertex2i(710,270);

glColor3f(1.0 ,1.0 ,1.0);

glVertex2i(540,370);

glVertex2i(540,270);

glEnd();

glColor3f(1.0 ,1.0 ,0.0);

glBegin(GL_TRIANGLES);

glVertex2i(680,130);

glVertex2i(710,270);

glVertex2i(650,210);

glEnd();

glColor3f(1.0 ,0.0 ,1.0);

glBegin(GL_TRIANGLES);

glVertex2i(680,130);

glVertex2i(760,190);

glVertex2i(840,130);

glEnd();

glColor3f(0.0 ,0.0 ,0.0);

glBegin(GL_POLYGON);

glVertex2i(720,130);

glVertex2i(780,130);

glVertex2i(840,80);

glVertex2i(840,40);

glVertex2i(780,0);

glVertex2i(720,0);

glVertex2i(660,40);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 27

glVertex2i(660,80);

glEnd();

glColor3f(0.0 ,1.0 ,1.0);

glBegin(GL_TRIANGLES);

glVertex2i(770,730);

glVertex2i(890,400);

glVertex2i(910,750);

glEnd();

glColor3f(0.0 ,1.0 ,1.0);

glBegin(GL_TRIANGLES);

glVertex2i(840,350);

glVertex2i(890,400);

glVertex2i(950,370);

glEnd();

glColor3f(0.0 ,0.0 ,0.0);

glBegin(GL_LINES);

glVertex2i(880,700);

glVertex2i(880,730);

glVertex2i(880,730);

glVertex2i(850,730);

glVertex2i(850,730);

glVertex2i(850,700);

glEnd();

glColor3f(0.0 ,0.0 ,0.0);

glBegin(GL_LINES);

glVertex2i(850,670);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 28

glVertex2i(880,670);

glVertex2i(880,670);

glVertex2i(880,640);

glVertex2i(880,640);

glVertex2i(850,640);

glVertex2i(850,640);

glVertex2i(850,670);

glEnd();

glColor3f(0.0 ,0.0 ,0.0);

glBegin(GL_LINES);

glVertex2i(840,610);

glVertex2i(880,610);

glVertex2i(880,610);

glVertex2i(880,590);

glVertex2i(880,590);

glVertex2i(860,590);

glVertex2i(860,590);

glVertex2i(860,610);

glEnd();

glColor3f(0.0 ,0.0 ,0.0);

glBegin(GL_LINES);

glVertex2i(880,550);

glVertex2i(850,560);

glVertex2i(880,550);

glVertex2i(850,540);

glVertex2i(865,555);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 29

glVertex2i(865,540);

glEnd();

glFlush(); //forza dibujo

}

int main (int argc, char** argv) //metodo main

{

glutInit(&argc, argv); //incializa GLUT

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de

visualización

glutInitWindowSize(500,500); //tamaño de la ventana

glutInitWindowPosition(0,0); //posicion inicial de la ventana

glutCreateWindow("MI primer ventana"); //nombre de la ventana

inicializa();

glutDisplayFunc(dibuja); //Envia los graficos a la ventana de visualización

glutMainLoop(); //muestra todo y espera

return 0; //retorna un valor de cero

}

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 30

Casita

Ahora realizaremos una casa con todo lo

aprendido hasta ahora esta casa tiene que tener

cuadrados, carretera, triángulos, etc.

Borrador con coordenadas utilizadas:

glBegin(GL_QUADS);

glBegin(GL_LINES);

glBegin(GL_POLYGON);

glBegin(GL_TRIANGLES);

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 fondo

glMatrixMode(GL_PROJECTION); //Modo de proyeccion

glLoadIdentity(); //Establece los parametros de proyeccion

gluOrtho2D(0.0, 1000.0,0.0, 1000.0); //vista ortogonal

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 31

}

void dibuja(void) //funcion dibuja

{

glClear(GL_COLOR_BUFFER_BIT); //borra pantalla

glColor3f(0.0 , 0.0 , 0.0);

//carretera

glBegin(GL_QUADS);

glVertex2i(0,200);

glVertex2i(0,0);

glVertex2i(1000,0);

glVertex2i(1000,200);

glEnd();

glColor3f(1.0 , 1.0 , 1.0);

glLineWidth(2);

glBegin(GL_LINES);

glVertex2i(10,100);

glVertex2i(100,100);

glVertex2i(200,100);

glVertex2i(300,100);

glVertex2i(400,100);

glVertex2i(500,100);

glVertex2i(600,100);

glVertex2i(700,100);

glVertex2i(800,100);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 32

glVertex2i(900,100);

glVertex2i(980,100);

glVertex2i(1000,100);

glEnd();

//pasto

glColor3f(0.0 , 1.0 , 0.0);

glBegin(GL_QUADS);

glVertex2i(0,500);

glVertex2i(0,200);

glVertex2i(1000,200);

glVertex2i(1000,500);

glEnd();

//linea amarilla

glColor3f(1.0 , 1.0 , 0.0);

glLineWidth(8);

glBegin(GL_LINES);

glVertex2i(0,200);

glVertex2i(1000,200);

glEnd();

//banqueta

glColor3f(0.5 , 0.5 , 0.5);

glLineWidth(50);

glBegin(GL_QUADS);

glVertex2i(0,208);

glVertex2i(0,300);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 33

glVertex2i(1000,300);

glVertex2i(1000,208);

glVertex2i(440,300);

glVertex2i(440,450);

glVertex2i(560,450);

glVertex2i(560,300);

glEnd();

glColor3f(0.5 , 0.5 , 0.5);

glBegin(GL_QUADS);

glVertex2i(200,350);

glVertex2i(200,380);

glVertex2i(250,380);

glVertex2i(250,350);

glVertex2i(150,350);

glVertex2i(150,380);

glVertex2i(100,380);

glVertex2i(100,350);

glVertex2i(200,400);

glVertex2i(200,430);

glVertex2i(250,430);

glVertex2i(250,400);

glVertex2i(150,400);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 34

glVertex2i(150,430);

glVertex2i(100,430);

glVertex2i(100,400);

glEnd();

//serca

glColor3f(1.0 , 1.0 , 0.0);

glBegin(GL_POLYGON);

glVertex2i(0,540);

glVertex2i(0,480);

glVertex2i(20,480);

glVertex2i(20,540);

glVertex2i(10,550);

glEnd();

glBegin(GL_POLYGON);

glVertex2i(40,540);

glVertex2i(40,480);

glVertex2i(60,480);

glVertex2i(60,540);

glVertex2i(50,550);

glEnd();

glBegin(GL_POLYGON);

glVertex2i(710,540);

glVertex2i(710,480);

glVertex2i(730,480);

glVertex2i(730,540);

glVertex2i(720,550);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 35

glEnd();

glBegin(GL_POLYGON);

glVertex2i(750,540);

glVertex2i(750,480);

glVertex2i(770,480);

glVertex2i(770,540);

glVertex2i(760,550);

glEnd();

glBegin(GL_POLYGON);

glVertex2i(790,540);

glVertex2i(790,480);

glVertex2i(810,480);

glVertex2i(810,540);

glVertex2i(800,550);

glEnd();

glBegin(GL_POLYGON);

glVertex2i(830,540);

glVertex2i(830,480);

glVertex2i(850,480);

glVertex2i(850,540);

glVertex2i(840,550);

glEnd();

glBegin(GL_POLYGON);

glVertex2i(870,540);

glVertex2i(870,480);

glVertex2i(890,480);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 36

glVertex2i(890,540);

glVertex2i(880,550);

glEnd();

glBegin(GL_POLYGON);

glVertex2i(910,540);

glVertex2i(910,480);

glVertex2i(930,480);

glVertex2i(930,540);

glVertex2i(920,550);

glEnd();

glBegin(GL_POLYGON);

glVertex2i(950,540);

glVertex2i(950,480);

glVertex2i(970,480);

glVertex2i(970,540);

glVertex2i(960,550);

glEnd();

glBegin(GL_POLYGON);

glVertex2i(990,540);

glVertex2i(990,480);

glVertex2i(1010,480);

glVertex2i(1010,540);

glVertex2i(1000,550);

glEnd();

glColor3f(1.0 , 1.0 , 0.0);

glLineWidth(10);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 37

glBegin(GL_LINES);

glVertex2i(0,520);

glVertex2i(1000,520);

glEnd();

//casa

glColor3f(1.0 , 1.0 , 0.0);

glBegin(GL_QUADS);

glVertex2i(300,750);

glVertex2i(300,450);

glVertex2i(700,450);

glVertex2i(700,750);

glEnd();

glColor3f(0.0 , 0.0 , 1.0);

glLineWidth(14);

glBegin(GL_LINES);

glVertex2i(300,600);

glVertex2i(700,600);

glVertex2i(440,450);

glVertex2i(440,750);

glVertex2i(560,450);

glVertex2i(560,750);

glEnd();

//techo casa

glColor3f(1.0 , 0.0 , 0.0);

glBegin(GL_POLYGON);

glVertex2i(300,820);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 38

glVertex2i(240,750);

glVertex2i(760,750);

glVertex2i(700,820);

glEnd();

//triangulo techo casa

glColor3f(0.7 , 0.2 , 0.2);

glBegin(GL_TRIANGLES);

glVertex2i(600,720);

glVertex2i(500,800);

glVertex2i(400,720);

glEnd();

//puerta casa

glColor3f(1.0 , 1.0 , 1.0);

glBegin(GL_QUADS);

glVertex2i(454,450);

glVertex2i(454,570);

glVertex2i(546,570);

glVertex2i(546,450);

glColor3f(1.0 , 0.0 , 1.0);

glVertex2i(474,470);

glVertex2i(474,550);

glVertex2i(526,550);

glVertex2i(526,470);

glEnd();

glColor3f(0.0 ,0.0 , 0.0);

glPointSize(3);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 39

glBegin(GL_POINTS);

glVertex2i(464,505);

glEnd();

//ventanas casa

glColor3f(1.0 , 0.0 , 1.0);

glBegin(GL_QUADS);

glVertex2i(320,570);

glVertex2i(320,510);

glVertex2i(400,510);

glVertex2i(400,570);

glVertex2i(595,570);

glVertex2i(595,510);

glVertex2i(675,510);

glVertex2i(675,570);

glVertex2i(320,730);

glVertex2i(320,660);

glVertex2i(400,660);

glVertex2i(400,730);

glVertex2i(595,730);

glVertex2i(595,660);

glVertex2i(675,660);

glVertex2i(675,730);

glEnd();

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 40

glColor3f(1.0 , 1.0 , 1.0);

glLineWidth(4);

glBegin(GL_LINES);

glVertex2i(320,570);

glVertex2i(320,510);

glVertex2i(320,510);

glVertex2i(400,510);

glVertex2i(400,510);

glVertex2i(400,570);

glVertex2i(400,570);

glVertex2i(320,570);

glVertex2i(320,530);

glVertex2i(400,530);

glVertex2i(360,530);

glVertex2i(360,510);

glVertex2i(595,570);

glVertex2i(595,510);

glVertex2i(595,510);

glVertex2i(675,510);

glVertex2i(675,510);

glVertex2i(675,570);

glVertex2i(675,570);

glVertex2i(595,570);

glVertex2i(595,530);

glVertex2i(675,530);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 41

glVertex2i(635,530);

glVertex2i(635,510);

glVertex2i(320,730);

glVertex2i(320,660);

glVertex2i(320,660);

glVertex2i(400,660);

glVertex2i(400,660);

glVertex2i(400,730);

glVertex2i(400,730);

glVertex2i(320,730);

glVertex2i(320,680);

glVertex2i(400,680);

glVertex2i(360,680);

glVertex2i(360,660);

glVertex2i(595,730);

glVertex2i(595,660);

glVertex2i(595,660);

glVertex2i(675,660);

glVertex2i(675,660);

glVertex2i(675,730);

glVertex2i(675,730);

glVertex2i(595,730);

glVertex2i(595,680);

glVertex2i(675,680);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 42

glVertex2i(635,680);

glVertex2i(635,660);

glEnd();

//balcon casa

glColor3f(1.0 , 0.0 , 1.0);

glBegin(GL_QUADS);

glVertex2i(454,720);

glVertex2i(454,600);

glVertex2i(546,600);

glVertex2i(546,720);

glEnd();

glColor3f(1.0 , 1.0, 1.0);

glLineWidth(3);

glBegin(GL_LINES);

glVertex2i(455,640);

glVertex2i(455,600);

glVertex2i(467,640);

glVertex2i(467,600);

glVertex2i(479,640);

glVertex2i(479,600);

glVertex2i(491,640);

glVertex2i(491,600);

glVertex2i(503,640);

glVertex2i(503,600);

glVertex2i(515,640);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 43

glVertex2i(515,600);

glVertex2i(527,640);

glVertex2i(527,600);

glVertex2i(539,640);

glVertex2i(539,600);

glVertex2i(455,640);

glVertex2i(546,640);

glVertex2i(505,640);

glVertex2i(505,720);

glEnd();

//cochera

glColor3f(0.8 , 0.8 , 0.8);

glBegin(GL_QUADS);

glVertex2i(90,450);

glVertex2i(90,600);

glVertex2i(300,600);

glVertex2i(300,450);

glEnd();

glColor3f(0.0 , 0.0, 1.0);

glLineWidth(12);

glBegin(GL_LINES);

glVertex2i(90,450);

glVertex2i(90,600);

glEnd();

//techo cochera

glColor3f(1.0 , 0.0 , 0.0);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 44

glBegin(GL_POLYGON);

glVertex2i(90,660);

glVertex2i(60,600);

glVertex2i(300,600);

glVertex2i(300,660);

glEnd();

//pinos

glColor3f(0.5 , 0.3 , 0.3);

glBegin(GL_QUADS);

glVertex2i(850,450);

glVertex2i(900,450);

glVertex2i(900,530);

glVertex2i(850,530);

glEnd();

int i,a=9;

glColor3f(0.1 , 0.3 , 0.2);

glLineWidth(3);

glBegin(GL_LINES);

for(i=0;i<=14;i++){

glVertex2i(1000-a*i,530+a*i);

glVertex2i(740+a*i,530+a*i);

}

glEnd();

glFlush(); //forza dibujo

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 45

}

int main (int argc, char** argv) //metodo main

{

glutInit(&argc, argv); //incializa GLUT

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de

visualización

glutInitWindowSize(500,500); //tamaño de la ventana

glutInitWindowPosition(0,0); //posicion inicial de la ventana

glutCreateWindow("MI primer ventana"); //nombre de la ventana

inicializa();

glutDisplayFunc(dibuja); //Envia los graficos a la ventana de visualización

glutMainLoop(); //muestra todo y espera

return 0; //retorna un valor de cero

}

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 46

Oso

En esta práctica haremos un la forma de un oso

aplicando un nuevo código.

Borrador con coordenadas utilizadas:

void circulo(int x, int y, int radio)

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 fondo

glMatrixMode(GL_PROJECTION); //Modo de proyeccion

glLoadIdentity(); //Establece los parametros de proyeccion

gluOrtho2D(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);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 47

//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); //borra pantalla

glColor3f(1.0,0.0,0.0);

circuloc(250,250,5,150);

circuloc(150,100,5,50);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 48

circuloc(350,100,5,50);

circuloc(100,350,5,50);

circuloc(400,350,5,50);

circuloc(250,450,5,125);

circuloc(175,600,5,55);

circuloc(325,600,5,55);

glColor3f(0.0,0.0,0.0);

circuloc(200,500,5,25);

glColor3f(1.0,1.0,0.5);

circulo(250,250,150);

circulo(350,100,50);

circulo(150,100,50);

circulo(250,450,125);

circulo(400,350,50);

circulo(100,350,50);

circulo(325,600,55);

circulo(175,600,55);

///////////////////////////////////////////////////////////////////////////////

glColor3f(0.0,0.0,0.0);

circuloc(200,500,1,25);

circuloc(300,500,1,25);

glColor3f(1.0,1.0,1.0);

circulo(200,500,25);

glColor3f(0.0,0.0,0.0);

circulo(200,500,15);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 49

glColor3f(1.0,1.0,1.0);

circulo(300,500,25);

circulo(325,600,40);

circulo(175,600,40);

glColor3f(0.0,0.0,0.0);

circulo(300,500,15);

glFlush(); //forza dibujo

}

int main (int argc, char** argv) //metodo main

{

glutInit(&argc, argv); //incializa GLUT

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de

visualización

glutInitWindowSize(500,500); //tamaño de la ventana

glutInitWindowPosition(100,100); //posicion inicial de la ventana

glutCreateWindow("Ventana"); //nombre de la ventana

inicializa();

glutDisplayFunc(dibuja); //Envia los graficos a la ventana de visualización

glutMainLoop(); //muestra todo y espera

return 0; //retorna un valor de cero

}

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 50

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 51

Cubo con cubitos

En este ejercicio hacer un cubo como el que ya

hicimos anteriormente pero esta vez en vez de

líneas será hecho por puros cubitos chiquitos.

Borrador con coordenadas utilizadas:

glBegin(GL_LINES);

glBegin(GL_QUADS);

for(i=0;i<=10;i++){

for(i=0;i<=10;i++){

Código

//mi primer ventana

#include <GL/glut.h>

#include <GL/gl.h>

#include <GL/glu.h>

void inicializa(void)

{

glClearColor(0.0,0.0,0.0,0.0); //color de fondo

glMatrixMode(GL_PROJECTION); //Modo de proyeccion

glLoadIdentity(); //Establece los parametros de proyeccion

gluOrtho2D(0.0, 2000.0, 0.0, 2000.0); //vista ortogonal

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 52

}

void dibuja(void) //funcion dibuja

{

int i,a=100;

glClear(GL_COLOR_BUFFER_BIT);

////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////

for(i=0;i<=10;i++){

glColor3f(6.0 ,0.8 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//izquierda

glVertex2i(700,600+a*i);

glVertex2i(700,700+a*i);

//arriva

glVertex2i(750,750+a*i);

//derecha

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 53

glVertex2i(750,650+a*i);

glEnd();

glColor3f(0.0 ,0.8 ,6.0 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(600,600+a*i);

glVertex2i(600,700+a*i);

//arriva

glVertex2i(700,700+a*i);

//derecha

glVertex2i(700,600+a*i);

//abajo

glEnd();

glColor3f(0.0 ,6.0 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 54

//cuadro

//izquierda

glVertex2i(600,700+a*i);

glVertex2i(650,750+a*i);

//arriva

glVertex2i(750,750+a*i);

//derecha

glVertex2i(700,700+a*i);

//abajo

glEnd();

//cuadro

glColor3f(0.0 ,0.0 ,6.0 );

glLineWidth(4);

glBegin(GL_LINES);

//cuadro

//izquierda

glVertex2i(600,600+a*i);

glVertex2i(600,700+a*i);

//arriva

glVertex2i(600,700+a*i);

glVertex2i(700,700+a*i);

//derecha

glVertex2i(700,700+a*i);

glVertex2i(700,600+a*i);

//abajo

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 55

glVertex2i(700,600+a*i);

glVertex2i(600,600+a*i);

//diagonal derecha esquina arriva

glVertex2i(650,750+a*i);

glVertex2i(600,700+a*i);

//linea cuadro atras

//linea cuadro atras

glVertex2i(650,750+a*i);

glVertex2i(750,750+a*i);

//linea derecha atras

glVertex2i(750,750+a*i);

glVertex2i(750,650+a*i);

//linea abajo derecha diagonal

glVertex2i(700,600+a*i);

glVertex2i(750,650+a*i);

//linea arriva derecha diagonal

glVertex2i(700,700+a*i);

glVertex2i(750,750+a*i);

glEnd();

}

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 56

////////////////////////////////////////////////////////////////////////

for(i=0;i<=10;i++){

glColor3f(1.0 ,0.8 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//izquierda

glVertex2i(1700,1600);

glVertex2i(1700,1700);

//arriva

glVertex2i(1750,1750);

//derecha

glVertex2i(1750,1650);

glEnd();

glColor3f(0.0 ,0.8 ,1.0 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 57

//izquierda

glVertex2i(1600-a*i,1600);

glVertex2i(1600-a*i,1700);

//arriva

glVertex2i(1700-a*i,1700);

//derecha

glVertex2i(1700-a*i,1600);

//abajo

glEnd();

glColor3f(0.0 ,1.0 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(1600-a*i,1700);

glVertex2i(1650-a*i,1750);

//arriva

glVertex2i(1750-a*i,1750);

//derecha

glVertex2i(1700-a*i,1700);

//abajo

glEnd();

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 58

//cuadro

glColor3f(0.0 ,0.0 ,1.0 );

glLineWidth(4);

glBegin(GL_LINES);

//cuadro

//izquierda

glVertex2i(1600-a*i,1600);

glVertex2i(1600-a*i,1700);

//arriva

glVertex2i(1600-a*i,1700);

glVertex2i(1700-a*i,1700);

//derecha

glVertex2i(1700-a*i,1700);

glVertex2i(1700-a*i,1600);

//abajo

glVertex2i(1700-a*i,1600);

glVertex2i(1600-a*i,1600);

//diagonal derecha esquina arriva

glVertex2i(1650-a*i,1750);

glVertex2i(1600-a*i,1700);

//linea cuadro atras

//linea cuadro atras

glVertex2i(1650-a*i,1750);

glVertex2i(1750-a*i,1750);

//linea derecha atras

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 59

glVertex2i(1750,1750);

glVertex2i(1750,1650);

//linea abajo derecha diagonal

glVertex2i(1700,1600);

glVertex2i(1750,1650);

//linea arriva derecha diagonal

glVertex2i(1700-a*i,1700);

glVertex2i(1750-a*i,1750);

glEnd();

}

///////////////////////////////////////////////////////////////////////

for(i=0;i<=9;i++){

glColor3f(1.0 ,0.8 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 60

//izquierda

glVertex2i(1700,600);

glVertex2i(1700,700);

//arriva

glVertex2i(1750,750);

//derecha

glVertex2i(1750,650);

glEnd();

glColor3f(0.0 ,0.8 ,1.0 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(1600-a*i,600);

glVertex2i(1600-a*i,700);

//arriva

glVertex2i(1700-a*i,700);

//derecha

glVertex2i(1700-a*i,600);

//abajo

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 61

glEnd();

glColor3f(0.0 ,1.0 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(1600-a*i,700);

glVertex2i(1650-a*i,750);

//arriva

glVertex2i(1750-a*i,750);

//derecha

glVertex2i(1700-a*i,700);

//abajo

glEnd();

//cuadro

glColor3f(0.0 ,0.0 ,1.0 );

glLineWidth(4);

glBegin(GL_LINES);

//cuadro

//izquierda

glVertex2i(1600-a*i,600);

glVertex2i(1600-a*i,700);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 62

//arriva

glVertex2i(1600-a*i,700);

glVertex2i(1700-a*i,700);

//derecha

glVertex2i(1700-a*i,700);

glVertex2i(1700-a*i,600);

//abajo

glVertex2i(1700-a*i,600);

glVertex2i(1600-a*i,600);

//diagonal derecha esquina arriva

glVertex2i(1650-a*i,750);

glVertex2i(1600-a*i,700);

//linea cuadro atras

//linea cuadro atras

glVertex2i(1650-a*i,750);

glVertex2i(1750-a*i,750);

//linea derecha atras

glVertex2i(1750,750);

glVertex2i(1750,650);

//linea abajo derecha diagonal

glVertex2i(1700,600);

glVertex2i(1750,650);

//linea arriva derecha diagonal

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 63

glVertex2i(1700-a*i,700);

glVertex2i(1750-a*i,750);

glEnd();

}

//////////////////////////////////////////////////////////////////////

for(i=0;i<=10;i++){

glColor3f(16.0 ,0.8 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//izquierda

glVertex2i(1700,600+a*i);

glVertex2i(1700,700+a*i);

//arriva

glVertex2i(1750,750+a*i);

//derecha

glVertex2i(1750,650+a*i);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 64

glEnd();

glColor3f(0.0 ,0.8 ,6.0 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(1600,600+a*i);

glVertex2i(1600,700+a*i);

//arriva

glVertex2i(1700,700+a*i);

//derecha

glVertex2i(1700,600+a*i);

//abajo

glEnd();

glColor3f(0.0 ,6.0 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 65

glVertex2i(1600,700+a*i);

glVertex2i(1650,750+a*i);

//arriva

glVertex2i(1750,750+a*i);

//derecha

glVertex2i(1700,700+a*i);

//abajo

glEnd();

//cuadro

glColor3f(0.0 ,0.0 ,6.0 );

glLineWidth(4);

glBegin(GL_LINES);

//cuadro

//izquierda

glVertex2i(1600,600+a*i);

glVertex2i(1600,700+a*i);

//arriva

glVertex2i(1600,700+a*i);

glVertex2i(1700,700+a*i);

//derecha

glVertex2i(1700,700+a*i);

glVertex2i(1700,600+a*i);

//abajo

glVertex2i(1700,600+a*i);

glVertex2i(1600,600+a*i);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 66

//diagonal derecha esquina arriva

glVertex2i(1650,750+a*i);

glVertex2i(1600,700+a*i);

//linea cuadro atras

//linea cuadro atras

glVertex2i(1650,750+a*i);

glVertex2i(1750,750+a*i);

//linea derecha atras

glVertex2i(1750,750+a*i);

glVertex2i(1750,650+a*i);

//linea abajo derecha diagonal

glVertex2i(1700,600+a*i);

glVertex2i(1750,650+a*i);

//linea arriva derecha diagonal

glVertex2i(1700,700+a*i);

glVertex2i(1750,750+a*i);

glEnd();

}

//////////////////////////////////////////////////////////////////////

for(i=0;i<=9;i++){

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 67

glColor3f(1.0 ,0.8 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//izquierda

glVertex2i(200+(50*i),100+(50*i));

glVertex2i(200+(50*i),200+(50*i));

//arriva

glVertex2i(250+(50*i),250+(50*i));

//derecha

glVertex2i(250+(50*i),150+(50*i));

glEnd();

glColor3f(0.0 ,0.8 ,1.0 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(100,100);

glVertex2i(100,200);

//arriva

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 68

glVertex2i(200,200);

//derecha

glVertex2i(200,100);

//abajo

glEnd();

glColor3f(0.0 ,1.0 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(100+(50*i),200+(50*i));

glVertex2i(150+(50*i),250+(50*i));

//arriva

glVertex2i(250+(50*i),250+(50*i));

//derecha

glVertex2i(200+(50*i),200+(50*i));

//abajo

glEnd();

//cuadro

glColor3f(0.0 ,0.0 ,1.0 );

glLineWidth(4);

glBegin(GL_LINES);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 69

//cuadro

//izquierda

glVertex2i(100,100);

glVertex2i(100,200);

//arriva

glVertex2i(100+(50*i),200+(50*i));

glVertex2i(200+(50*i),200+(50*i));

//derecha

glVertex2i(200+(50*i),200+(50*i));

glVertex2i(200+(50*i),100+(50*i));

//abajo

glVertex2i(200,100);

glVertex2i(100,100);

//diagonal derecha esquina arriva

glVertex2i(150+(50*i),250+(50*i));

glVertex2i(100+(50*i),200+(50*i));

//linea cuadro atras

//linea cuadro atras

glVertex2i(150+(50*i),250+(50*i));

glVertex2i(250+(50*i),250+(50*i));

//linea derecha atras

glVertex2i(250+(50*i),250+(50*i));

glVertex2i(250+(50*i),150+(50*i));

//linea abajo derecha diagonal

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 70

glVertex2i(200+(50*i),100+(50*i));

glVertex2i(250+(50*i),150+(50*i));

//linea arriva derecha diagonal

glVertex2i(200+(50*i),200+(50*i));

glVertex2i(250+(50*i),250+(50*i));

glEnd();

}

///////////////////////////////////////////////////////

for(i=0;i<=9;i++){

glColor3f(1.0 ,0.8 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//izquierda

glVertex2i(1200+(50*i),100+(50*i));

glVertex2i(1200+(50*i),200+(50*i));

//arriva

glVertex2i(1250+(50*i),250+(50*i));

//derecha

glVertex2i(1250+(50*i),150+(50*i));

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 71

glEnd();

glColor3f(0.0 ,0.8 ,1.0 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(1100,100);

glVertex2i(1100,200);

//arriva

glVertex2i(1200,200);

//derecha

glVertex2i(1200,100);

//abajo

glEnd();

glColor3f(0.0 ,1.0 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 72

glVertex2i(1100+(50*i),200+(50*i));

glVertex2i(1150+(50*i),250+(50*i));

//arriva

glVertex2i(1250+(50*i),250+(50*i));

//derecha

glVertex2i(1200+(50*i),200+(50*i));

//abajo

glEnd();

//cuadro

glColor3f(0.0 ,0.0 ,1.0 );

glLineWidth(4);

glBegin(GL_LINES);

//cuadro

//izquierda

glVertex2i(1100,100);

glVertex2i(1100,200);

//arriva

glVertex2i(1100+(50*i),200+(50*i));

glVertex2i(1200+(50*i),200+(50*i));

//derecha

glVertex2i(1200+(50*i),200+(50*i));

glVertex2i(1200+(50*i),100+(50*i));

//abajo

glVertex2i(1200,100);

glVertex2i(1100,100);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 73

//diagonal derecha esquina arriva

glVertex2i(1150+(50*i),250+(50*i));

glVertex2i(1100+(50*i),200+(50*i));

//linea cuadro atras

//linea cuadro atras

glVertex2i(1150+(50*i),250+(50*i));

glVertex2i(1250+(50*i),250+(50*i));

//linea derecha atras

glVertex2i(1250+(50*i),250+(50*i));

glVertex2i(1250+(50*i),150+(50*i));

//linea abajo derecha diagonal

glVertex2i(1200+(50*i),100+(50*i));

glVertex2i(1250+(50*i),150+(50*i));

//linea arriva derecha diagonal

glVertex2i(1200+(50*i),200+(50*i));

glVertex2i(1250+(50*i),250+(50*i));

glEnd();

}

////////////////////////////////////////////////////////

for(i=0;i<=9;i++){

glColor3f(1.0 ,0.8 ,0.5 );

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 74

glLineWidth(8);

glBegin(GL_QUADS);

//izquierda

glVertex2i(200+(50*i),1100+(50*i));

glVertex2i(200+(50*i),1200+(50*i));

//arriva

glVertex2i(250+(50*i),1250+(50*i));

//derecha

glVertex2i(250+(50*i),1150+(50*i));

glEnd();

glColor3f(0.0 ,0.8 ,11.0 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(100,1100);

glVertex2i(100,1200);

//arriva

glVertex2i(200,1200);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 75

//derecha

glVertex2i(200,1100);

//abajo

glEnd();

glColor3f(0.0 ,11.0 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(100+(50*i),1200+(50*i));

glVertex2i(150+(50*i),1250+(50*i));

//arriva

glVertex2i(250+(50*i),1250+(50*i));

//derecha

glVertex2i(200+(50*i),1200+(50*i));

//abajo

glEnd();

//cuadro

glColor3f(0.0 ,0.0 ,11.0 );

glLineWidth(4);

glBegin(GL_LINES);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 76

//cuadro

//izquierda

glVertex2i(100,1100);

glVertex2i(100,1200);

//arriva

glVertex2i(100+(50*i),1200+(50*i));

glVertex2i(200+(50*i),1200+(50*i));

//derecha

glVertex2i(200+(50*i),1200+(50*i));

glVertex2i(200+(50*i),1100+(50*i));

//abajo

glVertex2i(200,1100);

glVertex2i(100,1100);

//diagonal derecha esquina arriva

glVertex2i(150+(50*i),1250+(50*i));

glVertex2i(100+(50*i),1200+(50*i));

//linea cuadro atras

//linea cuadro atras

glVertex2i(150+(50*i),1250+(50*i));

glVertex2i(250+(50*i),1250+(50*i));

//linea derecha atras

glVertex2i(250+(50*i),1250+(50*i));

glVertex2i(250+(50*i),1150+(50*i));

//linea abajo derecha diagonal

glVertex2i(200+(50*i),1100+(50*i));

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 77

glVertex2i(250+(50*i),1150+(50*i));

//linea arriva derecha diagonal

glVertex2i(200+(50*i),1200+(50*i));

glVertex2i(250+(50*i),1250+(50*i));

glEnd();

}

////////////////////////////////////////////////////////////

for(i=0;i<=9;i++){

glColor3f(11.0 ,0.8 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//izquierda

glVertex2i(1200+(50*i),1100+(50*i));

glVertex2i(1200+(50*i),1200+(50*i));

//arriva

glVertex2i(1250+(50*i),1250+(50*i));

//derecha

glVertex2i(1250+(50*i),1150+(50*i));

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 78

glEnd();

glColor3f(0.0 ,0.8 ,11.0 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(1100,1100);

glVertex2i(1100,1200);

//arriva

glVertex2i(1200,1200);

//derecha

glVertex2i(1200,1100);

//abajo

glEnd();

glColor3f(0.0 ,11.0 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(1100+(50*i),1200+(50*i));

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 79

glVertex2i(1150+(50*i),1250+(50*i));

//arriva

glVertex2i(1250+(50*i),1250+(50*i));

//derecha

glVertex2i(1200+(50*i),1200+(50*i));

//abajo

glEnd();

//cuadro

glColor3f(0.0 ,0.0 ,11.0 );

glLineWidth(4);

glBegin(GL_LINES);

//cuadro

//izquierda

glVertex2i(1100,1100);

glVertex2i(1100,1200);

//arriva

glVertex2i(1100+(50*i),1200+(50*i));

glVertex2i(1200+(50*i),1200+(50*i));

//derecha

glVertex2i(1200+(50*i),1200+(50*i));

glVertex2i(1200+(50*i),1100+(50*i));

//abajo

glVertex2i(1200,1100);

glVertex2i(1100,1100);

//diagonal derecha esquina arriva

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 80

glVertex2i(1150+(50*i),1250+(50*i));

glVertex2i(1100+(50*i),1200+(50*i));

//linea cuadro atras

//linea cuadro atras

glVertex2i(1150+(50*i),1250+(50*i));

glVertex2i(1250+(50*i),1250+(50*i));

//linea derecha atras

glVertex2i(1250+(50*i),1250+(50*i));

glVertex2i(1250+(50*i),1150+(50*i));

//linea abajo derecha diagonal

glVertex2i(1200+(50*i),1100+(50*i));

glVertex2i(1250+(50*i),1150+(50*i));

//linea arriva derecha diagonal

glVertex2i(1200+(50*i),1200+(50*i));

glVertex2i(1250+(50*i),1250+(50*i));

glEnd();

}

//////////////////////////////////////////////////////////////////////

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 81

for(i=0;i<=10;i++){

glColor3f(1.0 ,0.8 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//izquierda

glVertex2i(200,100+a*i);

glVertex2i(200,200+a*i);

//arriva

glVertex2i(250,250+a*i);

//derecha

glVertex2i(250,150+a*i);

glEnd();

glColor3f(0.0 ,0.8 ,1.0 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(100,100+a*i);

glVertex2i(100,200+a*i);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 82

//arriva

glVertex2i(200,200+a*i);

//derecha

glVertex2i(200,100+a*i);

//abajo

glEnd();

glColor3f(0.0 ,1.0 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(100,200+a*i);

glVertex2i(150,250+a*i);

//arriva

glVertex2i(250,250+a*i);

//derecha

glVertex2i(200,200+a*i);

//abajo

glEnd();

//cuadro

glColor3f(0.0 ,0.0 ,1.0 );

glLineWidth(4);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 83

glBegin(GL_LINES);

//cuadro

//izquierda

glVertex2i(100,100+a*i);

glVertex2i(100,200+a*i);

//arriva

glVertex2i(100,200+a*i);

glVertex2i(200,200+a*i);

//derecha

glVertex2i(200,200+a*i);

glVertex2i(200,100+a*i);

//abajo

glVertex2i(200,100+a*i);

glVertex2i(100,100+a*i);

//diagonal derecha esquina arriva

glVertex2i(150,250+a*i);

glVertex2i(100,200+a*i);

//linea cuadro atras

//linea cuadro atras

glVertex2i(150,250+a*i);

glVertex2i(250,250+a*i);

//linea derecha atras

glVertex2i(250,250+a*i);

glVertex2i(250,150+a*i);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 84

//linea abajo derecha diagonal

glVertex2i(200,100+a*i);

glVertex2i(250,150+a*i);

//linea arriva derecha diagonal

glVertex2i(200,200+a*i);

glVertex2i(250,250+a*i);

glEnd();

}

//////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////

for(i=0;i<=9;i++){

glColor3f(1.0 ,0.8 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//izquierda

glVertex2i(1200,1100);

glVertex2i(1200,1200);

//arriva

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 85

glVertex2i(1250,1250);

//derecha

glVertex2i(1250,1150);

glEnd();

glColor3f(0.0 ,0.8 ,1.0 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(1100-a*i,1100);

glVertex2i(1100-a*i,1200);

//arriva

glVertex2i(1200-a*i,1200);

//derecha

glVertex2i(1200-a*i,1100);

//abajo

glEnd();

glColor3f(0.0 ,1.0 ,0.5 );

glLineWidth(8);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 86

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(1100-a*i,1200);

glVertex2i(1150-a*i,1250);

//arriva

glVertex2i(1250-a*i,1250);

//derecha

glVertex2i(1200-a*i,1200);

//abajo

glEnd();

//cuadro

glColor3f(0.0 ,0.0 ,1.0 );

glLineWidth(4);

glBegin(GL_LINES);

//cuadro

//izquierda

glVertex2i(1100-a*i,1100);

glVertex2i(1100-a*i,1200);

//arriva

glVertex2i(1100-a*i,1200);

glVertex2i(1200-a*i,1200);

//derecha

glVertex2i(1200-a*i,1200);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 87

glVertex2i(1200-a*i,1100);

//abajo

glVertex2i(1200-a*i,1100);

glVertex2i(1100-a*i,1100);

//diagonal derecha esquina arriva

glVertex2i(1150-a*i,1250);

glVertex2i(1100-a*i,1200);

//linea cuadro atras

//linea cuadro atras

glVertex2i(1150-a*i,1250);

glVertex2i(1250-a*i,1250);

//linea derecha atras

glVertex2i(1250,1250);

glVertex2i(1250,1150);

//linea abajo derecha diagonal

glVertex2i(1200,1100);

glVertex2i(1250,1150);

//linea arriva derecha diagonal

glVertex2i(1200-a*i,1200);

glVertex2i(1250-a*i,1250);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 88

glEnd();

}

//////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////

for(i=0;i<=9;i++){

glColor3f(1.0 ,0.8 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//izquierda

glVertex2i(1200,100);

glVertex2i(1200,200);

//arriva

glVertex2i(1250,250);

//derecha

glVertex2i(1250,150);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 89

glEnd();

glColor3f(0.0 ,0.8 ,1.0 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(1100-a*i,100);

glVertex2i(1100-a*i,200);

//arriva

glVertex2i(1200-a*i,200);

//derecha

glVertex2i(1200-a*i,100);

//abajo

glEnd();

glColor3f(0.0 ,1.0 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(1100-a*i,200);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 90

glVertex2i(1150-a*i,250);

//arriva

glVertex2i(1250-a*i,250);

//derecha

glVertex2i(1200-a*i,200);

//abajo

glEnd();

//cuadro

glColor3f(0.0 ,0.0 ,1.0 );

glLineWidth(4);

glBegin(GL_LINES);

//cuadro

//izquierda

glVertex2i(1100-a*i,100);

glVertex2i(1100-a*i,200);

//arriva

glVertex2i(1100-a*i,200);

glVertex2i(1200-a*i,200);

//derecha

glVertex2i(1200-a*i,200);

glVertex2i(1200-a*i,100);

//abajo

glVertex2i(1200-a*i,100);

glVertex2i(1100-a*i,100);

//diagonal derecha esquina arriva

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 91

glVertex2i(1150-a*i,250);

glVertex2i(1100-a*i,200);

//linea cuadro atras

//linea cuadro atras

glVertex2i(1150-a*i,250);

glVertex2i(1250-a*i,250);

//linea derecha atras

glVertex2i(1250,250);

glVertex2i(1250,150);

//linea abajo derecha diagonal

glVertex2i(1200,100);

glVertex2i(1250,150);

//linea arriva derecha diagonal

glVertex2i(1200-a*i,200);

glVertex2i(1250-a*i,250);

glEnd();

}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////

for(i=0;i<=10;i++){

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 92

glColor3f(1.0 ,0.8 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//izquierda

glVertex2i(1200,100+a*i);

glVertex2i(1200,200+a*i);

//arriva

glVertex2i(1250,250+a*i);

//derecha

glVertex2i(1250,150+a*i);

glEnd();

glColor3f(0.0 ,0.8 ,1.0 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(1100,100+a*i);

glVertex2i(1100,200+a*i);

//arriva

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 93

glVertex2i(1200,200+a*i);

//derecha

glVertex2i(1200,100+a*i);

//abajo

glEnd();

glColor3f(0.0 ,1.0 ,0.5 );

glLineWidth(8);

glBegin(GL_QUADS);

//cuadro

//izquierda

glVertex2i(1100,200+a*i);

glVertex2i(1150,250+a*i);

//arriva

glVertex2i(1250,250+a*i);

//derecha

glVertex2i(1200,200+a*i);

//abajo

glEnd();

//cuadro

glColor3f(0.0 ,0.0 ,1.0 );

glLineWidth(4);

glBegin(GL_LINES);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 94

//cuadro

//izquierda

glVertex2i(1100,100+a*i);

glVertex2i(1100,200+a*i);

//arriva

glVertex2i(1100,200+a*i);

glVertex2i(1200,200+a*i);

//derecha

glVertex2i(1200,200+a*i);

glVertex2i(1200,100+a*i);

//abajo

glVertex2i(1200,100+a*i);

glVertex2i(1100,100+a*i);

//diagonal derecha esquina arriva

glVertex2i(1150,250+a*i);

glVertex2i(1100,200+a*i);

//linea cuadro atras

//linea cuadro atras

glVertex2i(1150,250+a*i);

glVertex2i(1250,250+a*i);

//linea derecha atras

glVertex2i(1250,250+a*i);

glVertex2i(1250,150+a*i);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 95

//linea abajo derecha diagonal

glVertex2i(1200,100+a*i);

glVertex2i(1250,150+a*i);

//linea arriva derecha diagonal

glVertex2i(1200,200+a*i);

glVertex2i(1250,250+a*i);

glEnd();

}

/////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

glFlush(); //forza dibujo

}

int main (int argc, char** argv) //metodo main

{

glutInit(&argc, argv); //incializa GLUT

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 96

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de

visualización

glutInitWindowSize(500,500); //tamaño de la ventana

glutInitWindowPosition(0,0); //posicion inicial de la ventana

glutCreateWindow("cubo3d"); //nombre de la ventana

inicializa();

glutDisplayFunc(dibuja); //Envia los graficos a la ventana de visualización

glutMainLoop(); //muestra todo y espera

return 0; //retorna un valor de cero

}

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 97

Muñeco con formas

En esta actividad realizaremos un muñeco con la

que ya hemos aprendido pero ahora más detallado

Borrador con coordenadas utilizadas:

glBegin(GL_POINTS);

glBegin(GL_TRIANGLE_FAN);

glBegin(GL_QUADS);

glBegin(GL_POLYGON);

glBegin(GL_TRIANGLES);

glBegin(GL_LINES);

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 fondo

glMatrixMode(GL_PROJECTION); //Modo de proyeccion

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 98

glLoadIdentity(); //Establece los parametros de proyeccion

gluOrtho2D(0.0, 800.0, 0.0, 800.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();

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 99

}

void dibuja(void) //funcion dibuja

{

glClear(GL_COLOR_BUFFER_BIT);

//brazo derecho

glColor3f(1.0 , 0.8 , 0.7);

glBegin(GL_QUADS);

glVertex2i(510,395);

glVertex2i(580,340);

glVertex2i(620,340);

glVertex2i(540,400);

glEnd();

//brazo izquierdo

glColor3f(1.0 , 0.8 , 0.7);

glBegin(GL_QUADS);

glVertex2i(190,395);

glVertex2i(140,340);

glVertex2i(100,340);

glVertex2i(250,480);

glEnd();

//cuerpo pecho

glColor3f(1.0 , 0.0 , 0.0);

glBegin(GL_QUADS);

glVertex2i(250,480);

glVertex2i(250,300);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 100

glVertex2i(450,300);

glVertex2i(450,480);

//manos derecha

glVertex2i(450,420);

glVertex2i(500,390);

glVertex2i(560,400);

glVertex2i(450,480);

//mano izquierda

glVertex2i(250,420);

glVertex2i(200,390);

glVertex2i(150,400);

glVertex2i(250,480);

glEnd();

//cabeza con cuello

glColor3f(1.0 , 0.8 , 0.7);

glBegin(GL_POLYGON);

glVertex2i(330,520);

glVertex2i(330,470);

glVertex2i(350,440);

glVertex2i(370,470);

glVertex2i(370,520);

glEnd();

circulo(350,600,100);

circulo(350,560,30);

//pantalon

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 101

glColor3f(0.0 , 1.0 , 0.0);

glBegin(GL_POLYGON);

glVertex2i(250,300);

glVertex2i(220,100);

glVertex2i(280,70);

glVertex2i(420,300);

glVertex2i(410,70);

glVertex2i(470,100);

glVertex2i(450,300);

glEnd();

glColor3f(0.0 , 0.0 , 0.0);

glBegin(GL_TRIANGLES);

//Pie izquierdo

glVertex2i(220,100);

glVertex2i(280,70);

glVertex2i(140,70);

glEnd();

//Pie derecho

glColor3f(0.0 , 0.0 , 0.0);

glBegin(GL_TRIANGLES);

glVertex2i(470,100);

glVertex2i(410,70);

glVertex2i(560,70);

glEnd();

//ojos

glColor3f(1.0 , 1.0 , 1.0);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 102

circulo(300,600,20);

circulo(400,600,20);

circulo(350,550,30);

glColor3f(0.0 , 0.0 , 0.0);

circulo(300,600,10);

circulo(400,600,10);

glColor3f(1.0 , 0.8 , 0.7);

circulo(350,560,30);

//nariz

glColor3f(0.0 , 0.0 , 0.0);

glBegin(GL_LINES);

glVertex2i(350,580);

glVertex2i(370,560);

glVertex2i(370,560);

glVertex2i(350,560);

glEnd();

//cabello

circulo(350,690,40);

circulo(310,690,40);

circulo(380,690,40);

circulo(430,670,40);

circulo(280,670,40);

circulo(250,630,35);

circulo(450,630,35);

glColor3f(1.0 , 0.8 , 0.7);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 103

circulo(595,330,35);

circulo(110,330,35);

glFlush(); //forza dibujo

}

int main (int argc, char** argv) //metodo main

{

glutInit(&argc, argv); //incializa GLUT

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); //establece el modo de

visualización

glutInitWindowSize(700,700); //tamaño de la ventana

glutInitWindowPosition(100,100); //posicion inicial de la ventana

glutCreateWindow("Ventana"); //nombre de la ventana

inicializa();

glutDisplayFunc(dibuja); //Envia los graficos a la ventana de visualización

glutMainLoop(); //muestra todo y espera

return 0; //retorna un valor de cero

}

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 104

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 105

Sistema solar

En este ejercicio tenemos que hacer un sistema

solar con el sol y sus planetas girando alrededor

de este.

Borrador con coordenadas utilizadas

glBegin(GL_POINTS);

for (angulo=0;angulo<=360; angulo+=1){

glVertex2f(x + sin(angulo) * radio, y +

cos(angulo) * radio);}

glEnd();

glBegin(GL_TRIANGLE_FAN);

Código

#include <unistd.h>w

#include <GL/glut.h>

#include <GL/gl.h>

#include <math.h>

int rad=500;

double ang=0,a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0;

void inicializa(void)

{

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 106

glClearColor(0.0,0.0,0.0,0.0);

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

gluOrtho2D(0.0, 1800.0, 0.0, 1800.0);// el ancho y largo de nuestra pantalla

}

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);

glVertex2f(x,y);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 107

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);//esto

glColor3f(1.0,1.0,0.0);

circulo( 900,900,60); //funcion circulo

glColor3f(0.0,0.0,1.0);

circulo( 900+ sin(ang) * 120,900 + cos(ang) * 120,5);

circuloc(900,900,1,120);

glColor3f(0.0,1.0,0.1);

circulo( 900+ sin(a) * 250,900 + cos(a) * 250,10);

circuloc(900,900,2,250);

glColor3f(0.4,0.0,1.0);

circulo( 900+ sin(b) * 350,900 + cos(b) * 350,15);

circuloc(900,900,2,350);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 108

glColor3f(3.0,5.0,1.0);

circulo( 900+ sin(c) * 450,900 + cos(c) * 450,20);

circuloc(900,900,2,450);

glColor3f(0.1,3.0,1.0);

circulo( 900+ sin(d) * 550,900 + cos(d) * 550,25);

circuloc(900,900,2,550);

glColor3f(0.2,0.0,1.0);

circulo( 900+ sin(e) * 680,900 + cos(e) * 680,30);

circuloc(900,900,2,680);

glColor3f(1.0,0.0,0.0);

circulo( 900+ sin(f) * 800,900 + cos(f) * 800,35);

circuloc(900,900,2,800);

glColor3f(0.0,1.0,0.0);

circulo( 900+ sin(i) * 890,900 + cos(i) * 890,40);

circuloc(900,900,2,890);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 109

a=a+0.09;

b=b+0.08;

c=c+0.07;

d=d+0.06;

e=e+0.05;

f=f+0.04;

g=g+0.03;

h=h+0.02;

i=i+0.03;

ang=ang+0.01; //velocidad entre mas grande mas rapido y entre menos mas lento

for(int j=1;j<=10000000;j++){}//pausa

if(ang==360){ang=0;}// se repite idefinidamente

glFlush(); //forzar dibujado

glutSwapBuffers(); //y esto

}

int main (int argc, char** argv)

{

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA| GLUT_DEPTH);//esto

tambien

glutInitWindowSize(1000,1000);

glutInitWindowPosition(10,10);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 110

glutCreateWindow("Ventana");

inicializa();

glutDisplayFunc(dibuja);

glutIdleFunc(dibuja);//esto es lo que cambia

glutMainLoop();

return 0;

}

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 111

Movimiento en 8

En esta actividad tenemos que hacer como una

pista de carreras en donde salga un circulo

moviéndose por todo el ocho son salirse se la

línea limite.

Borrador con coordenadas utilizadas:

glBegin(GL_TRIANGLE_FAN);

for (angulo=0;angulo<=360; angulo+=6){

glVertex2f(x + sin(angulo) * radio, y +

cos(angulo) * radio);}

Código

#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.8,0.5,0.3,1.0);

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 112

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.0, 0.5, 0.1);

circulo(310, 310, 80);

circulo(310,190,80);

glColor3f(1.0,0.0,0.0);

circulo(310,310,40);

circulo(310,190,40);

glColor3f(0.0,0.0,1.0);

if(a>=6.15 && a<=12.41){

circulo(300+ sin (a)*60,300- cos(a)*60,10);

a=a+0.01;

}

else{

circulo(300 + sin (b) *60,180-cos(b)*-60,10);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 113

b=b + 0.25;

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();

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 114

glutDisplayFunc(dibuja);

glutIdleFunc(dibuja);

glutMainLoop();

return 0;

}

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 115

Semáforo

En esta práctica lo que tenemos que hacer es un

semáforo que cambie de color como si fuera un

semáforo real de verde, amarillo y rojo y asi

sucesivamente.

Borrador con coordenadas utilizadas;

glBegin(GL_TRIANGLE_FAN);

for (angulo=0;angulo<=360; angulo+=6){

glVertex2f(x + sin(angulo) * radio, y +

cos(angulo) * radio);}

glBegin(GL_QUADS);

Código

#include <unistd.h>

#include <GL/glut.h>

#include <GL/gl.h>

#include <math.h>

int x=1,z=1,w=1, y=1;

void inicializa(void)

{

glClearColor(0.0,0.0,0.0,0.0);

glMatrixMode(GL_PROJECTION);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 116

glLoadIdentity();

gluOrtho2D(0.0, 1800.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);

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.0,0.0,0.0);

if(x>=1 && x<800){

circulo(100+1*x,700,20);

glFlush();

x++;

}

glColor3f(.0,0.0,0.0);

if(y>=1 && y<600 && x==800){

circulo(900,700-y,20);

glFlush();

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 117

y++;

}

glColor3f(.0,0.0,0.0);

if(w>=1 && w<800 && y==600 && x==800){

circulo(900-w,100,20);

glFlush();

w++;

}

glColor3f(.0,0.0,0.0);

if(z>=1 && z<600 && y==600 && x==800 && w==800){

circulo(100,100+z,20);

glFlush();

z++;

if(z==600) {z=1;x=1;y=1;w=1;}

}

glColor3f(1.0,0.0,1.0);

glBegin(GL_QUADS);

glVertex2i(690,690);

glVertex2i(690,250);

glVertex2i(1000,250);

glVertex2i(1000,690);

glEnd();

glBegin(GL_QUADS);

glVertex2i(800,290);

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 118

glVertex2i(800,0);

glVertex2i(900,0);

glVertex2i(900,290);

glEnd();

glFlush();

glColor3f(0.0,0.0,0.0);

circulo(850,600,50);

glColor3f(0.0,0.0,0.0);

circulo(850,480,50);

circulo(850,350,50);

glColor3f(1.0,0.0,0.0);

if(x>=1 && x<800){

circulo(850,600,50);

glFlush();

x++;

}

glColor3f(1.0,1.0,0.0);

if(y>=1 && y<600 && x==800){

circulo(850,480,50);

glFlush();

y++;

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 119

}

glColor3f(0.0,1.0,0.0);

if(w>=1 && w<800 && y==600 && x==800){

circulo(850,350,50);

glFlush();

w++;

}

glColor3f(0.0,1.0,0.0);

if(z>=1 && z<600 && y==600 && x==800 && w==800){

circulo(950,450,60);

glFlush();

z++;

{z=1;x=1;y=1;w=1;}

}

glutSwapBuffers();

}

int main (int argc, char** argv)

{

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA| GLUT_DEPTH);

glutInitWindowSize(1200,600);

glutInitWindowPosition(10,10);

glutCreateWindow("Ventana");

COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO

Página 120

inicializa();

glutDisplayFunc(dibuja);

glutIdleFunc(dibuja);

glutMainLoop();

return 0;

}