SlideShare uma empresa Scribd logo
1 de 120
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                ESTADO DE MEXCO

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




                     Página 1
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                 ESTADO DE MEXCO



 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.




                      Página 2
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO




                         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)

{




                               Página 3
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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



                                         Página 4
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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



                              Página 5
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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



                                           Página 6
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

{

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

}




                                        Página 7
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

                                        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

{




                                         Página 8
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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



                                            Página 9
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

inicializa();

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

glutMainLoop();               //muestra todo y espera

return 0;                  //retorna un valor de cero

}




                                    Página
                                    10
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO




                              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


                                         Página
                                         11
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

}



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


                                        Página
                                        12
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO




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


                                            Página
                                            13
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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

glutMainLoop();               //muestra todo y espera

return 0;                  //retorna un valor de cero

}




                                    Página
                                    14
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                     ESTADO DE MEXCO

                                    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

}




                                         Página
                                         15
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO


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

}


                                             Página
                                             16
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO




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

}




                                            Página
                                            17
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                     ESTADO DE MEXCO

                              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



                                         Página
                                         18
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

}



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


                                        Página
                                        19
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                   ESTADO DE MEXCO

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


                        Página
                        20
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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

}




                                            Página
                                            21
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO



                         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



                                         Página
                                         22
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

}



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


                                        Página
                                        23
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                              Página
                              24
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                            Página
                            25
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                            Página
                            26
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                            Página
                            27
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                            Página
                            28
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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

}




                                            Página
                                            29
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

                                       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


                                         Página
                                         30
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

}



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


                                        Página
                                        31
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                              Página
                              32
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                              Página
                              33
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                              Página
                              34
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                         Página
                         35
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                              Página
                              36
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                              Página
                              37
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                              Página
                              38
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                              Página
                              39
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                              Página
                              40
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                   ESTADO DE MEXCO

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


                        Página
                        41
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                              Página
                              42
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                              Página
                              43
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                                           Página
                                           44
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

}



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

}




                                            Página
                                            45
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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




                                                 Página
                                                 46
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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




                                              Página
                                              47
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                      ESTADO DE MEXCO

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


                                                                 Página
                                                                 48
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO


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

}



                                            Página
                                            49
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                ESTADO DE MEXCO




                     Página
                     50
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

                            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


                                         Página
                                         51
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                      ESTADO DE MEXCO


}



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


                                                                 Página
                                                                 52
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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




                             Página
                             53
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

//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


                             Página
                             54
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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

}




                                    Página
                                    55
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                      ESTADO DE MEXCO




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

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


                                                                 Página
                                                                 56
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                             Página
                             57
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

//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


                                    Página
                                    58
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                      ESTADO DE MEXCO


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




                                                                 Página
                                                                 59
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

//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




                             Página
                             60
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO


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


                             Página
                             61
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

//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


                                    Página
                                    62
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                      ESTADO DE MEXCO


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




                                                                 Página
                                                                 63
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO




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


                             Página
                             64
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                             Página
                             65
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                      ESTADO DE MEXCO

//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++){


                                                                 Página
                                                                 66
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                                     Página
                                     67
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                                     Página
                                     68
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO


//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


                                     Página
                                     69
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                      ESTADO DE MEXCO

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




                                                          Página
                                                          70
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO




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


                             Página
                             71
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                                      Página
                                      72
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                      ESTADO DE MEXCO

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


                                                           Página
                                                           73
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                                      Página
                                      74
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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




                                      Página
                                      75
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                                      Página
                                      76
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                      ESTADO DE MEXCO

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




                                                               Página
                                                               77
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO


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


                                       Página
                                       78
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                                       Página
                                       79
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                      ESTADO DE MEXCO

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

}




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


                                                                 Página
                                                                 80
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                             Página
                             81
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                             Página
                             82
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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




                                    Página
                                    83
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                      ESTADO DE MEXCO

//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


                                                                 Página
                                                                 84
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                             Página
                             85
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                             Página
                             86
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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




                                    Página
                                    87
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                      ESTADO DE MEXCO


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




                                                                 Página
                                                                 88
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO


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


                             Página
                             89
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                                    Página
                                    90
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                      ESTADO DE MEXCO

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++){


                                                                 Página
                                                                 91
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO


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


                             Página
                             92
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                             Página
                             93
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO


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




                                    Página
                                    94
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                      ESTADO DE MEXCO

//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


                                                                 Página
                                                                 95
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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

}




                                        Página
                                        96
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

                          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


                                         Página
                                         97
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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




                                                  Página
                                                  98
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

}



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


                                        Página
                                        99
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                              Página
                              100
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                              Página
                              101
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                              Página
                              102
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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

}




                                            Página
                                            103
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                ESTADO DE MEXCO




                     Página
                     104
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                     ESTADO DE MEXCO

                           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)

{


                                  Página
                                  105
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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




                                            Página
                                            106
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                                          Página
                                          107
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                   ESTADO DE MEXCO


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




                                       Página
                                       108
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO


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


                                        Página
                                        109
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

glutCreateWindow("Ventana");

inicializa();

glutDisplayFunc(dibuja);

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

glutMainLoop();

return 0;

}




                                     Página
                                     110
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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



                                      Página
                                      111
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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



                                         Página
                                         112
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                                    Página
                                    113
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

glutDisplayFunc(dibuja);

glutIdleFunc(dibuja);

glutMainLoop();

return 0;

}




                           Página
                           114
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                                   Página
                                   115
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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



                                         Página
                                         116
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                                   Página
                                   117
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

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


                               Página
                               118
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

}

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


                                   Página
                                   119
COLEGIO DE ESUDIOS CIENTIFICOS Y TECNOLOGICOS DEL
                    ESTADO DE MEXCO

inicializa();

glutDisplayFunc(dibuja);

glutIdleFunc(dibuja);

glutMainLoop();

return 0;

}




                           Página
                           120

Mais conteúdo relacionado

Mais procurados

Mais procurados (8)

Estela y naye
Estela y nayeEstela y naye
Estela y naye
 
Manual de actividades
Manual de actividadesManual de actividades
Manual de actividades
 
Practicas para slider Rene Dominguez
Practicas para slider Rene Dominguez Practicas para slider Rene Dominguez
Practicas para slider Rene Dominguez
 
Manual de practicas de open gl con dev c
Manual de practicas de open gl con dev cManual de practicas de open gl con dev c
Manual de practicas de open gl con dev c
 
Intro opengl
Intro openglIntro opengl
Intro opengl
 
Proyecto de rene
Proyecto de reneProyecto de rene
Proyecto de rene
 
Programa de cuadrado en c++
Programa de cuadrado en c++Programa de cuadrado en c++
Programa de cuadrado en c++
 
Swing
SwingSwing
Swing
 

Destaque (20)

Gina
GinaGina
Gina
 
Natércia Freire
Natércia FreireNatércia Freire
Natércia Freire
 
Tugas plkj hunting picture di monas
Tugas plkj hunting picture di monasTugas plkj hunting picture di monas
Tugas plkj hunting picture di monas
 
Lost | Transmídia, Economia da Participação e a nova audiência
Lost | Transmídia, Economia da Participação e a nova audiênciaLost | Transmídia, Economia da Participação e a nova audiência
Lost | Transmídia, Economia da Participação e a nova audiência
 
Xarxes verticals edirectivos
Xarxes verticals edirectivosXarxes verticals edirectivos
Xarxes verticals edirectivos
 
Vanesitha
VanesithaVanesitha
Vanesitha
 
Aniversaris setembre
Aniversaris setembreAniversaris setembre
Aniversaris setembre
 
Vaya que trabajito ii
Vaya que trabajito iiVaya que trabajito ii
Vaya que trabajito ii
 
Pa Slidesjoset6m1
Pa Slidesjoset6m1Pa Slidesjoset6m1
Pa Slidesjoset6m1
 
Embaixada da Colombia 2011
Embaixada da Colombia 2011Embaixada da Colombia 2011
Embaixada da Colombia 2011
 
JobProviders
JobProvidersJobProviders
JobProviders
 
Integrare 2011
 Integrare 2011 Integrare 2011
Integrare 2011
 
Mx m363 u-20121106_111623
Mx m363 u-20121106_111623Mx m363 u-20121106_111623
Mx m363 u-20121106_111623
 
Apresentação clubimaxi
Apresentação clubimaxiApresentação clubimaxi
Apresentação clubimaxi
 
Case BrasíliaTtwestival 2011 no Social Media Brasil 2011
Case BrasíliaTtwestival 2011 no Social Media Brasil 2011Case BrasíliaTtwestival 2011 no Social Media Brasil 2011
Case BrasíliaTtwestival 2011 no Social Media Brasil 2011
 
淺析第一封詢價的回覆之案例分析(台灣篇)
淺析第一封詢價的回覆之案例分析(台灣篇)淺析第一封詢價的回覆之案例分析(台灣篇)
淺析第一封詢價的回覆之案例分析(台灣篇)
 
Crack mata
Crack mataCrack mata
Crack mata
 
Tamara
TamaraTamara
Tamara
 
EL VERBO TO BE
EL VERBO TO BEEL VERBO TO BE
EL VERBO TO BE
 
5 SENSES
5 SENSES5 SENSES
5 SENSES
 

Semelhante a Manual open gl

Proyecto de reneya terminado
Proyecto de reneya terminadoProyecto de reneya terminado
Proyecto de reneya terminadojesicecytem
 
Proyecto de reneya terminado
Proyecto de reneya terminadoProyecto de reneya terminado
Proyecto de reneya terminadoKaren_Avilaa
 
Manual de practicas de open gl con dev c
Manual de practicas de open gl con dev cManual de practicas de open gl con dev c
Manual de practicas de open gl con dev csantios11
 
Manual de practicas de open gl con dev c
Manual de practicas de open gl con dev cManual de practicas de open gl con dev c
Manual de practicas de open gl con dev crayder1
 
Manual de practicas de open gl con dev c
Manual de practicas de open gl con dev cManual de practicas de open gl con dev c
Manual de practicas de open gl con dev csantios11
 
Manual de prácticas belmonte & ponce
Manual de prácticas belmonte & ponce Manual de prácticas belmonte & ponce
Manual de prácticas belmonte & ponce Pachoon Vargas
 
Manual de prácticas rivera y ruiz
Manual de prácticas rivera y ruizManual de prácticas rivera y ruiz
Manual de prácticas rivera y ruizPachoon Vargas
 
Introducción a las librerías PyGame y PyOpenGL
Introducción a las librerías PyGame y PyOpenGLIntroducción a las librerías PyGame y PyOpenGL
Introducción a las librerías PyGame y PyOpenGLkdeespana
 
Deber piramide y cubo
Deber piramide y cuboDeber piramide y cubo
Deber piramide y cuboPao Alvarez
 
Realidad Aumentada más allá de Glass - Droidcon 2014
Realidad Aumentada más allá de Glass - Droidcon 2014Realidad Aumentada más allá de Glass - Droidcon 2014
Realidad Aumentada más allá de Glass - Droidcon 2014Fernando Gallego
 
3.7 lcd grafico glcd
3.7 lcd grafico glcd3.7 lcd grafico glcd
3.7 lcd grafico glcdSNPP
 
Renderización en java
Renderización en javaRenderización en java
Renderización en javaaleja0940
 
Codigo ejemplo j2 me
Codigo ejemplo   j2 meCodigo ejemplo   j2 me
Codigo ejemplo j2 meOscar Eduardo
 
Clean Code (EN ESPANOL)
Clean Code (EN ESPANOL)Clean Code (EN ESPANOL)
Clean Code (EN ESPANOL)Rodrigo Branas
 
Manejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladoreManejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladoreLuis Zurita
 
Desarrollo de Videojuegos Android con Cocos2D
Desarrollo de Videojuegos Android con Cocos2DDesarrollo de Videojuegos Android con Cocos2D
Desarrollo de Videojuegos Android con Cocos2DJordan-P
 
manual de practicas de opengl
manual de practicas de openglmanual de practicas de opengl
manual de practicas de openglAlincita Simon
 

Semelhante a Manual open gl (20)

Proyecto de reneya terminado
Proyecto de reneya terminadoProyecto de reneya terminado
Proyecto de reneya terminado
 
Proyecto de reneya terminado
Proyecto de reneya terminadoProyecto de reneya terminado
Proyecto de reneya terminado
 
Manual de practicas de open gl con dev c
Manual de practicas de open gl con dev cManual de practicas de open gl con dev c
Manual de practicas de open gl con dev c
 
Manual de practicas de open gl con dev c
Manual de practicas de open gl con dev cManual de practicas de open gl con dev c
Manual de practicas de open gl con dev c
 
Manual de practicas de open gl con dev c
Manual de practicas de open gl con dev cManual de practicas de open gl con dev c
Manual de practicas de open gl con dev c
 
Manual de practicas de open gl con dev c
Manual de practicas de open gl con dev cManual de practicas de open gl con dev c
Manual de practicas de open gl con dev c
 
Manual de prácticas belmonte & ponce
Manual de prácticas belmonte & ponce Manual de prácticas belmonte & ponce
Manual de prácticas belmonte & ponce
 
Manual de prácticas rivera y ruiz
Manual de prácticas rivera y ruizManual de prácticas rivera y ruiz
Manual de prácticas rivera y ruiz
 
Introducción a las librerías PyGame y PyOpenGL
Introducción a las librerías PyGame y PyOpenGLIntroducción a las librerías PyGame y PyOpenGL
Introducción a las librerías PyGame y PyOpenGL
 
Mini introopengl
Mini introopenglMini introopengl
Mini introopengl
 
Deber piramide y cubo
Deber piramide y cuboDeber piramide y cubo
Deber piramide y cubo
 
Realidad Aumentada más allá de Glass - Droidcon 2014
Realidad Aumentada más allá de Glass - Droidcon 2014Realidad Aumentada más allá de Glass - Droidcon 2014
Realidad Aumentada más allá de Glass - Droidcon 2014
 
Opengl
OpenglOpengl
Opengl
 
3.7 lcd grafico glcd
3.7 lcd grafico glcd3.7 lcd grafico glcd
3.7 lcd grafico glcd
 
Renderización en java
Renderización en javaRenderización en java
Renderización en java
 
Codigo ejemplo j2 me
Codigo ejemplo   j2 meCodigo ejemplo   j2 me
Codigo ejemplo j2 me
 
Clean Code (EN ESPANOL)
Clean Code (EN ESPANOL)Clean Code (EN ESPANOL)
Clean Code (EN ESPANOL)
 
Manejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladoreManejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladore
 
Desarrollo de Videojuegos Android con Cocos2D
Desarrollo de Videojuegos Android con Cocos2DDesarrollo de Videojuegos Android con Cocos2D
Desarrollo de Videojuegos Android con Cocos2D
 
manual de practicas de opengl
manual de practicas de openglmanual de practicas de opengl
manual de practicas de opengl
 

Último

Ética utilitarista de Jeremy BentahmF.pptx
Ética utilitarista de Jeremy BentahmF.pptxÉtica utilitarista de Jeremy BentahmF.pptx
Ética utilitarista de Jeremy BentahmF.pptxSebaslSalazar
 
Vivimos por fe un tema para saber mas como conocer nuestra fe
Vivimos por fe un tema para saber mas como conocer nuestra feVivimos por fe un tema para saber mas como conocer nuestra fe
Vivimos por fe un tema para saber mas como conocer nuestra feZerimarlandaeta1
 
Examen de Personal Social de 6to año de primaria
Examen de Personal Social de 6to año de primariaExamen de Personal Social de 6to año de primaria
Examen de Personal Social de 6to año de primariaMILAGROSLORENABENITE1
 
Foros de la plataforma de capacitación virtual
Foros de la plataforma de capacitación virtualForos de la plataforma de capacitación virtual
Foros de la plataforma de capacitación virtualUniversidad de Guayaquil
 
GUÍA-DEL-CURSO-PANORAMA-DEL-ANTIGUO-TESTAMENTO.pdf
GUÍA-DEL-CURSO-PANORAMA-DEL-ANTIGUO-TESTAMENTO.pdfGUÍA-DEL-CURSO-PANORAMA-DEL-ANTIGUO-TESTAMENTO.pdf
GUÍA-DEL-CURSO-PANORAMA-DEL-ANTIGUO-TESTAMENTO.pdfMariaLauraLpezCceres
 
DD075 - GESTIÓN DE LA CONFIANZA - RIESGO Y CALIDAD.pdf
DD075 - GESTIÓN DE LA CONFIANZA - RIESGO Y CALIDAD.pdfDD075 - GESTIÓN DE LA CONFIANZA - RIESGO Y CALIDAD.pdf
DD075 - GESTIÓN DE LA CONFIANZA - RIESGO Y CALIDAD.pdfkarenbaez24
 
compilacion-codigos-y-ejercicios-canalizados-por-agesta-al-1-marzo-2016.pdf
compilacion-codigos-y-ejercicios-canalizados-por-agesta-al-1-marzo-2016.pdfcompilacion-codigos-y-ejercicios-canalizados-por-agesta-al-1-marzo-2016.pdf
compilacion-codigos-y-ejercicios-canalizados-por-agesta-al-1-marzo-2016.pdfDrGonzalezCampo1
 
TIPOS DE MOCIONES INTERPRETACIÓN Y DESARROLLO (1).pdf
TIPOS DE MOCIONES INTERPRETACIÓN Y DESARROLLO (1).pdfTIPOS DE MOCIONES INTERPRETACIÓN Y DESARROLLO (1).pdf
TIPOS DE MOCIONES INTERPRETACIÓN Y DESARROLLO (1).pdfvventura2024
 
¿Cómo puedo manejar mis emociones y ser resiliente?
¿Cómo puedo manejar mis emociones y ser resiliente?¿Cómo puedo manejar mis emociones y ser resiliente?
¿Cómo puedo manejar mis emociones y ser resiliente?JazmnSilvanTorres
 
Primera Unidad de Aprendizaje.2024 docx
Primera Unidad de Aprendizaje.2024  docxPrimera Unidad de Aprendizaje.2024  docx
Primera Unidad de Aprendizaje.2024 docxMaritza438836
 
Razonabilidad. CONCEPTO SOBRE LA RAZONABILIDAD EN E LHOMBRE
Razonabilidad. CONCEPTO SOBRE LA RAZONABILIDAD EN E LHOMBRERazonabilidad. CONCEPTO SOBRE LA RAZONABILIDAD EN E LHOMBRE
Razonabilidad. CONCEPTO SOBRE LA RAZONABILIDAD EN E LHOMBREWilliamMendoza82
 
Taxonomiìa de Bloom Taller Teorico Practico.pdf
Taxonomiìa de Bloom Taller Teorico Practico.pdfTaxonomiìa de Bloom Taller Teorico Practico.pdf
Taxonomiìa de Bloom Taller Teorico Practico.pdfMarlaZarithchacnGonz
 
anatomia del cuerpo. humano para niños pdf
anatomia del cuerpo. humano para niños pdfanatomia del cuerpo. humano para niños pdf
anatomia del cuerpo. humano para niños pdfLindaPaolaSantosMont
 

Último (14)

Ética utilitarista de Jeremy BentahmF.pptx
Ética utilitarista de Jeremy BentahmF.pptxÉtica utilitarista de Jeremy BentahmF.pptx
Ética utilitarista de Jeremy BentahmF.pptx
 
Vivimos por fe un tema para saber mas como conocer nuestra fe
Vivimos por fe un tema para saber mas como conocer nuestra feVivimos por fe un tema para saber mas como conocer nuestra fe
Vivimos por fe un tema para saber mas como conocer nuestra fe
 
Examen de Personal Social de 6to año de primaria
Examen de Personal Social de 6to año de primariaExamen de Personal Social de 6to año de primaria
Examen de Personal Social de 6to año de primaria
 
Foros de la plataforma de capacitación virtual
Foros de la plataforma de capacitación virtualForos de la plataforma de capacitación virtual
Foros de la plataforma de capacitación virtual
 
GUÍA-DEL-CURSO-PANORAMA-DEL-ANTIGUO-TESTAMENTO.pdf
GUÍA-DEL-CURSO-PANORAMA-DEL-ANTIGUO-TESTAMENTO.pdfGUÍA-DEL-CURSO-PANORAMA-DEL-ANTIGUO-TESTAMENTO.pdf
GUÍA-DEL-CURSO-PANORAMA-DEL-ANTIGUO-TESTAMENTO.pdf
 
DD075 - GESTIÓN DE LA CONFIANZA - RIESGO Y CALIDAD.pdf
DD075 - GESTIÓN DE LA CONFIANZA - RIESGO Y CALIDAD.pdfDD075 - GESTIÓN DE LA CONFIANZA - RIESGO Y CALIDAD.pdf
DD075 - GESTIÓN DE LA CONFIANZA - RIESGO Y CALIDAD.pdf
 
compilacion-codigos-y-ejercicios-canalizados-por-agesta-al-1-marzo-2016.pdf
compilacion-codigos-y-ejercicios-canalizados-por-agesta-al-1-marzo-2016.pdfcompilacion-codigos-y-ejercicios-canalizados-por-agesta-al-1-marzo-2016.pdf
compilacion-codigos-y-ejercicios-canalizados-por-agesta-al-1-marzo-2016.pdf
 
TIPOS DE MOCIONES INTERPRETACIÓN Y DESARROLLO (1).pdf
TIPOS DE MOCIONES INTERPRETACIÓN Y DESARROLLO (1).pdfTIPOS DE MOCIONES INTERPRETACIÓN Y DESARROLLO (1).pdf
TIPOS DE MOCIONES INTERPRETACIÓN Y DESARROLLO (1).pdf
 
¿Cómo puedo manejar mis emociones y ser resiliente?
¿Cómo puedo manejar mis emociones y ser resiliente?¿Cómo puedo manejar mis emociones y ser resiliente?
¿Cómo puedo manejar mis emociones y ser resiliente?
 
Primera Unidad de Aprendizaje.2024 docx
Primera Unidad de Aprendizaje.2024  docxPrimera Unidad de Aprendizaje.2024  docx
Primera Unidad de Aprendizaje.2024 docx
 
Razonabilidad. CONCEPTO SOBRE LA RAZONABILIDAD EN E LHOMBRE
Razonabilidad. CONCEPTO SOBRE LA RAZONABILIDAD EN E LHOMBRERazonabilidad. CONCEPTO SOBRE LA RAZONABILIDAD EN E LHOMBRE
Razonabilidad. CONCEPTO SOBRE LA RAZONABILIDAD EN E LHOMBRE
 
Taxonomiìa de Bloom Taller Teorico Practico.pdf
Taxonomiìa de Bloom Taller Teorico Practico.pdfTaxonomiìa de Bloom Taller Teorico Practico.pdf
Taxonomiìa de Bloom Taller Teorico Practico.pdf
 
LEY DE LA UTILIDAD---------------- 18.pdf
LEY DE LA UTILIDAD---------------- 18.pdfLEY DE LA UTILIDAD---------------- 18.pdf
LEY DE LA UTILIDAD---------------- 18.pdf
 
anatomia del cuerpo. humano para niños pdf
anatomia del cuerpo. humano para niños pdfanatomia del cuerpo. humano para niños pdf
anatomia del cuerpo. humano para niños pdf
 

Manual open gl

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