Page 1
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
Page 2
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.
Page 3
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)
{
Page 4
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);
Page 5
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);
Page 6
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
Page 7
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
}
Page 8
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
{
Page 9
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
Page 10
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
}
Page 11
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
Page 12
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);
Page 13
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();
Page 14
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
}
Page 15
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
}
Page 16
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
}
Page 17
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
}
Page 18
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
Page 19
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);
Page 20
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);
Page 21
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
}
Page 22
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
Page 23
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);
Page 24
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);
Page 25
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);
Page 26
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);
Page 27
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);
Page 28
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);
Page 29
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
}
Page 30
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
Page 31
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);
Page 32
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);
Page 33
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);
Page 34
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);
Page 35
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);
Page 36
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);
Page 37
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);
Page 38
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);
Page 39
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();
Page 40
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);
Page 41
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);
Page 42
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);
Page 43
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);
Page 44
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
Page 45
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
}
Page 46
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);
Page 47
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);
Page 48
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);
Page 49
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
}
Page 50
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO
Página 50
Page 51
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
Page 52
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
Page 53
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);
Page 54
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
Page 55
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();
}
Page 56
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
Page 57
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();
Page 58
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
Page 59
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);
Page 60
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
Page 61
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);
Page 62
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
Page 63
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);
Page 64
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
Page 65
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);
Page 66
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++){
Page 67
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
Page 68
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);
Page 69
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
Page 70
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));
Page 71
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
Page 72
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);
Page 73
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 );
Page 74
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);
Page 75
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);
Page 76
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));
Page 77
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));
Page 78
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));
Page 79
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
Page 80
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();
}
//////////////////////////////////////////////////////////////////////
Page 81
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);
Page 82
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);
Page 83
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);
Page 84
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
Page 85
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);
Page 86
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);
Page 87
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);
Page 88
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);
Page 89
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);
Page 90
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
Page 91
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++){
Page 92
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
Page 93
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);
Page 94
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);
Page 95
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
Page 96
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
}
Page 97
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
Page 98
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();
Page 99
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);
Page 100
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
Page 101
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);
Page 102
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);
Page 103
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
}
Page 104
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO
Página 104
Page 105
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)
{
Page 106
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);
Page 107
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);
Page 108
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);
Page 109
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);
Page 110
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;
}
Page 111
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();
Page 112
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);
Page 113
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();
Page 114
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO
Página 114
glutDisplayFunc(dibuja);
glutIdleFunc(dibuja);
glutMainLoop();
return 0;
}
Page 115
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);
Page 116
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();
Page 117
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);
Page 118
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++;
Page 119
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");
Page 120
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXCO
Página 120
inicializa();
glutDisplayFunc(dibuja);
glutIdleFunc(dibuja);
glutMainLoop();
return 0;
}