SlideShare una empresa de Scribd logo
1 de 91
COLEGIO DE ESTUDIOS CIENTIFICOS Y TECNOLOGICOS
             DEL ESTADO DE MEXICO




           LEIDY VIVANI OLVERA LEON
          ROSARIO GUTIERREZ URBINA




                  GRUPO: 303




     PROFESOR: RENE DOMINGUEZ ESCALONA




              MANUAL DE OPEN GL
INTRODUCCION


OpenGL es una interfaz software de hardware gráfico, es decirdefine las funciones
que se pueden utilizar en una aplicación para acceder a las prestaciones de un
dispositivo gráfico. Es un motor 3D cuyas rutinas están integradas en tarjetas
gráficas 3D. Fue desarrollado por Sillicon Graphics, Inc. (SGI) con el afán de hacer
un estándar de representación en 3D. Es compatible con prácticamente cualquier
plataforma hardware así como con muchos lenguajes de programación (C,C++,
Visual Basic, Visual Fortran, Java)



En este manual aprenderemos a realizar algunas prácticas en el programa Open
Gl Dev c++, asi mismo aprenderemos las partes que lo componen y las primitivas
que se deben de usar para la realización de distintos dibujos y animaciones en
dicho programa.
TABLERO DE AJEDREZ


En esta práctica realizaremos un tablero de ajedrez utilizando las primitivas
glBegin(GL_POINTS); esta primitiva nos servirá para realizar los puntos en los que
estará situado cada uno de los cuadros, así mismo utilizaremos la primitiva
glPointSize(); para ponerle un tamaño especifico a los puntos que se realizarán
para los cuadros utilizados en esta actividad.

Recuerda que los tableros de ajedrez tienen 8 cuadros por cada lado del tablero
así que tendrás que definir bien las coordenadas para cada uno de los cuadros
para que esta actividad salga de la forma en que la quieres.



BORRADOR

CODIGO

//mi primer ventana

#include <GL/glut.h>

#include <GL/gl.h>

#include <GL/glu.h>



void inicializa(void)

{

glClearColor(1.0,.0,5.0,1.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);

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

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

{

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
}
CUBO CON LINEAS

En esta actividad realizaremos un cubo con puras líneas para ello ocuparemos la
primitiva (GL_LINES) con esta podremos realizar todas las líneas del cubo, así
mismo utilizaremos la primitiva, glLineWidth (); con la cual podremos ponerle el
tamaño que deseemos a la líneas que conformaran el cubo, con las primitivas
anteriores realizaremos el cubo como el que se muestra a continuación:




El código de dicho cubo nos quedara de la siguiente forma:

//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(50.0, 500.0, 50.0, 500.0);    //vista ortogonal

}



void dibuja(void)              //funcion dibuja

{



glClear(GL_COLOR_BUFFER_BIT);

glLineWidth (10);
glBegin(GL_LINES);

// atras

glColor3f (1.0 , 1.0 , 1.0);

glLineWidth (20);

glVertex2i (100,200);

glVertex2i (300,200);

glVertex2i (300,200);

glVertex2i (300,400);

glVertex2i (300,400);

glVertex2i (100,400);

glVertex2i (100,400);

glVertex2i (100,200);

// frente

glColor3f (1.0,1.0, 1.0);

glVertex2i (200,100);

glVertex2i (200,300);

glVertex2i (200,300);

glVertex2i (400,300);

glVertex2i (400,300);

glVertex2i (400,100);

glVertex2i (400,100);

glVertex2i (200,100);



glColor3f (1.0,1.0, 1.0);

glVertex2i (400,100);

glVertex2i (300,200);
glVertex2i (200,100);

glVertex2i (100,200);

glVertex2i (400,300);

glVertex2i (300,400);

glVertex2i (200,300);

glVertex2i (100,400);

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

}
El siguiente paso después de la realización del código es compilarlo para verificar
que el código ha sido escrito correctamente y funciona de la forma adecuada
como se muestra a continuación:




                                  ESTRELLA
En esta actividad realizaremos una estrella con puras líneas, para ello utilizaremos
la primitiva (GL_LINES) para realizar las líneas de dicha estrella, así mismo
utilizaremos la primitiva glLineWidth (); la cual nos servirá para colocar el tamaño
de la línea en que se quiera tener la estrella; tenemos que tener en cuenta la
ubicación de las coordenadas de cada punto para que la estrella salga de la forma
en la que esperamos como la que se muestra a continuación:
Se darán cuenta de que es muy sencillo realizar una estrella con este programa lo
único que se tiene que hacer es poner atención en las coordenadas que llevara
cada punto y e código quedara de la siguiente forma:



//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(50.0, 500.0, 50.0, 500.0);    //vista ortogonal

}



void dibuja(void)              //funcion dibuja

{



glClear(GL_COLOR_BUFFER_BIT);

glLineWidth (5);

glBegin(GL_LINES);

// atras

glColor3f(1.0 , 1.0 , 0.0);
glVertex2i(200,100);

glVertex2i(300,400);



glVertex2i(300,400);

glVertex2i(400,100);



glVertex2i(400,100);

glVertex2i (100,300);

glVertex2i (100,300);

glVertex2i (500,300);

glVertex2i (500,300);

glVertex2i (200,100);

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

}




El siguiente paso después de la realización del código es compilarlo para verificar
que el código ha sido escrito correctamente y funciona de la forma adecuada
como se muestra a continuación:
PIRAMIDE
En esta actividad realizaremos una pirámide vista desde arriba, para ello
utilizaremos la primitiva (GL_LINES) que nos servirá para la realización de las
líneas correspondientes a la pirámide, así mismo utilizaremos la primitiva
for(i=1;i<=10;i++){ la cual nos servirá para multiplicar las líneas o escalones de la
pirámide, también utilizaremos la primitiva glLineWidth (); para el grosor de las
líneas de nuestra pirámide; en esta practica tendremos cuidado al colocar las
coordenadas que tendrá cada uno de los puntos de nuestra pirámide ya que si no
lo hacemos a si no saldrá de la forma en que esperamos como la que se muestra
a continuación:




Como se abran dado cuenta esta actividad no es sencilla ya que ha y que colocar
distintas coordenadas en cada uno de los puntos de la pirámide para que con la
primitiva for podamos multiplicar las líneas o escalones de la pirámide a
continuación les presentamos el código para la realización de esta práctica:

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

}



void dibuja(void)       //funcion dibuja

{



int i,a=25;

glClear(GL_COLOR_BUFFER_BIT);                  //borra pantalla

glColor3f(1.0 , 0.0 , 0.0);

glLineWidth(5);

glBegin(GL_LINES);

//Valor incial --- Valor final o condicion --- incremento

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



//Abajo

glVertex2i (240-20*i, 240-20*i);

glVertex2i (260+20*i, 240-20*i);

//Derecha
glVertex2i (260+20*i, 240-20*i);

glVertex2i (260+20*i, 260+20*i);

//Izquierda

glVertex2i (240-20*i, 240-20*i);

glVertex2i (240-20*i, 260+20*i);

//Arriba

glVertex2i (240-20*i, 260+20*i);

glVertex2i (260+20*i, 260+20*i);

//lineas

glVertex2i (450,450);

glVertex2i (300,300);

glVertex2i (200,200);

glVertex2i (50,50);

glVertex2i (450,50);

glVertex2i (300,200);

glVertex2i (50,450);

glVertex2i (200,300);

}

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

}




El siguiente paso después de la realización del código es compilarlo para verificar
que el código ha sido escrito correctamente y funciona de la forma adecuada
como se muestra a continuación:
CUBO DELINEADO Y RELLENO


En esta actividad realizaremos un cubo relleno y delineado, para ello utilizaremos
la primitiva (GL_QUADS) Con la cual podremos realizar cada una de las caras del
cubo, con esta primitivaglColor3f (0.0, 0.0, 0.0);podemos ponerle color de fondo a
las caras del nuestro cubo, así mismo utilizaremos la primitiva (GL_LINES) ya que
con ella podremos darle el delineado a el cubo, también utilizaremos la primitiva
glLineWidth (); para el grosor de las líneas como el que se muestra a
continuación:




Esta práctica no es muy difícil de hacer ya que utilizamos lo antes visto, lo único
nuevo es la primitiva (GL_QUADS) la cual es muy sencilla de utilizar, siempre y
cuando las coordenadas que se están dando sean las correctas a continuación les
presentamos el código para la realización de esta actividad:

//mi primer ventana

#include <GL/glut.h>

#include <GL/gl.h>

#include <GL/glu.h>
void inicializa(void)

{

glClearColor(1.0,1.0,1.0,1.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

{




glClear(GL_COLOR_BUFFER_BIT);                  //borra pantalla

glColor3f(0.0 , 0.0 , 0.0);

glBegin(GL_QUADS);



//ATRAS

glColor3f(1.0 , 0.9 , 1.0);

glVertex2d(100,200);

glVertex2d(300,200);

glVertex2d(300,400);

glVertex2d(100,400);

// lado derecho

glColor3f(1.0 , 0.5 , 1.0);

glVertex2d (100,400);

glVertex2d (100,200);
glVertex2d (200,100);

glVertex2d (200,300);

// Arriba

glColor3f (1.0, 0.9, 1.0);

glVertex2d (100,400);

glVertex2d (200,300);

glVertex2d (400,300);

glVertex2d (400,300);

// Abajo

glColor3f (1.0, 0.0, 0.5);

glVertex2d (100,200);

glVertex2d (200,100);

glVertex2d (400,100);

glVertex2d (300,200);

// Lado izquierdo

glColor3f (1.0, 0.0, 0.9);

glVertex2d (400,100);

glVertex2d (400,300);

glVertex2d (300,400);

glVertex2d (300,200);

// Frente

glColor3f (1.5, 1.0, 0.0);

glVertex2d (200,100);

glVertex2d (200,300);

glVertex2d (400,300);

glVertex2d (400,100);
glEnd();

glColor3f (0.0 , 0.0 , 0.0);

glLineWidth (5);

glBegin(GL_LINES);

// atras

glColor3f (0.0 , 0.0 , 0.0);

glLineWidth (20);

glVertex2i (100,200);

glVertex2i (300,200);

glVertex2i (300,200);

glVertex2i (300,400);

glVertex2i (300,400);

glVertex2i (100,400);

glVertex2i (100,400);

glVertex2i (100,200);

// frente

glColor3f (0.0, 0.0, 0.0);

glVertex2i (200,100);

glVertex2i (200,300);

glVertex2i (200,300);

glVertex2i (400,300);



glVertex2i (400,300);

glVertex2i (400,100);

glVertex2i (400,100);

glVertex2i (200,100);
glColor3f (0.0,0.0, 0.0);

glVertex2i (400,100);

glVertex2i (300,200);

glVertex2i (200,100);

glVertex2i (100,200);

glVertex2i (400,300);

glVertex2i (300,400);

glVertex2i (200,300);

glVertex2i (100,400);

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

}
El siguiente paso después de la realización del código es compilarlo para verificar
que el código ha sido escrito correctamente y funciona de la forma adecuada
como se muestra a continuación:
MUÑECO CON TRIANGULOS

En esta actividad realizaremos un muñequito hecho con triángulos, para ello
utilizaremos la primitiva (GL_TRIANGLES) con la cual realizaremos los triángulos
que llevara el muñeco, así mismo utilizaremos la primitiva (GL_QUADS) para el
cuerpo del muñeco, también ocuparemos la primitiva (GL_POLYGON) que nos
servirá para la realización del trofeo y del balón. A continuación les presentamos
un borrador de las coordenadas que podrán utilizar para realizar esta práctica:




Esta actividad esta un poco complicada ya que estamos utilizando nuevas
primitivas con las cuales no habíamos trabajado antes, pero que no son muy
difíciles de realizarlas solo tienes que prestar atención a las coordenadas que
estas estableciendo para que todo te salga bien A continuación les presentamos el
código para la realización de esta práctica:

//mi primer dibujo

#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, 2000.0, 0.0, 2000.0);    //vista ortogonal

}



void dibuja(void)              //funcion dibuja

{

glClear(GL_COLOR_BUFFER_BIT);               //borra pantalla

glBegin(GL_TRIANGLES);



glColor3f (0.0, 0.0, 0.0);

//gorro

glVertex2f (440,760);

glVertex2f (600,880);

glVertex2f (760,760);

glEnd();

//cabeza

glColor3f (1.0, 0.0, 0.0);

glBegin(GL_TRIANGLES);

glVertex2f (520,760);

glVertex2f (600,640);

glVertex2f (680,760);

glEnd();
//corbata

glColor3f (0.0, 0.0, 0.0);

glBegin(GL_TRIANGLES);

glVertex2f (560,640);

glVertex2f (600,600);

glVertex2f (640,640);

glEnd();

//cuerpazo

glBegin(GL_QUADS);

glVertex2f (480,640);

glVertex2f (480,360);

glVertex2f (720,360);

glVertex2f (720,640);

glEnd();

//brazo izquierdp

glColor3f (1.0 , 1.5 , 0.0);

glBegin(GL_TRIANGLES);

glVertex2f (480,640);

glVertex2f (360,360);

glVertex2f (280,440);

glEnd();

//brazo derecho

glColor3f (1.0, 1.5, 0.0);

glBegin(GL_TRIANGLES);

glVertex2f (720,640);

glVertex2f (920,400);
glVertex2f (840,360);

glEnd();

//mano izquierda

glColor3f (1.0, 1.5, 0.0);

glBegin(GL_TRIANGLES);

glVertex2f (240,520);

glVertex2f (280,440);

glVertex2f (240,400);

glEnd();

//mano derecha

glColor3f (1.0, 1.5, 0.0);

glBegin(GL_TRIANGLES);

glVertex2f(960,520);

glVertex2f (960,400);

glVertex2f (920,400);

//pata derecha

glColor3f (0.0, 0.0, 0.0);

glBegin(GL_TRIANGLES);

glVertex2f (640,360);

glVertex2f (800,280);

glVertex2f (640,280);

glEnd();

//abajo pata

glColor3f (1.0, 1.5, 0.0);

glBegin(GL_TRIANGLES);

glVertex2f (800,120);
glVertex2f (720,200);

glVertex2f (800,280);

glEnd();

//pata abjao abajo

glColor3f (1.0, 1.5, 0.0);

glBegin(GL_TRIANGLES);

glVertex2f (800,120);

glVertex2f (880,160);

glVertex2f (960,120);

glEnd();

//pata abajo izquierda

glColor3f (1.0, 1.5, 0.0);

glBegin(GL_TRIANGLES);

glVertex2f (400, 40);

glVertex2f (480, 80);

glVertex2f (560, 40);

glEnd();

glColor3f (1.0, 00, 0.0);

glBegin(GL_POLYGON);

glVertex2f (840,120);

glVertex2f (880,120);

glVertex2f (920,80);

glVertex2f (920,40);

glVertex2f (880,0);

glVertex2f (840,0);

glVertex2f (800,40);
glVertex2f (800,80);

glEnd();

//trofeo

glColor3f (1.0, 00, 0.5);

glBegin(GL_POLYGON);

glVertex2f (920,600);

glVertex2f (1000,600);

glVertex2f (960,560);

glVertex2f (1040,440);

glVertex2f (1040,360);

glVertex2f (1000,400);

glVertex2f (920,560);

glEnd();

glColor3f (1.0, 1.5, 0.0);

glBegin(GL_TRIANGLES);

glVertex2f (1000, 600);

glVertex2f (1120, 600);

glColor3f (1.0, 0.0, 0.0);

glVertex2f (1060, 360);

glEnd();

glColor3f (1.0, 00, 0.5);

glBegin(GL_POLYGON);

glVertex2f (1080, 360);

glVertex2f (1080, 440);

glVertex2f (1160, 560);

glVertex2f (1160, 560);
glVertex2f (1120, 600);

glVertex2f (1200, 600);

glVertex2f (1200, 560);

glEnd();

glColor3f (1.0, 1.5, 0.0);

glBegin(GL_TRIANGLES);

glVertex2f (560,360);

glVertex2f (560,40);

glVertex2f (480,280);

glEnd();

glColor3f (1.0, 00, 0.5);

glBegin(GL_TRIANGLES);

glVertex2f (1000, 320);

glVertex2f (1060, 360);

glVertex2f (1120, 320);

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

}

 El siguiente paso después de la realización del código es compilarlo para verificar
que el código ha sido escrito correctamente y funciona de la forma adecuada
como se muestra a continuación:
CASITA
En esta práctica se ocuparan los cuadrados, triángulos, polígonos, líneas y si es
necesario círculos y degradados, para crear una casa.

Código:

#include <GL/glut.h>

#include <GL/gl.h>

#include <math.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, 2000.0, 0.0, 2000.0);            //vista ortogonal

}

void circuloc(int x, int y, int t, int radio)

{

        int angulo=0;

        glPointSize(t);

        glBegin(GL_POINTS);

//glColor3f (1.0, 0.0, 1.0);

        glVertex2f(x,y);

        //glColor3f(0,0.0,0.0);

      for (angulo=0;angulo<=360; angulo+=1){ glVertex2f(x + sin(angulo) * radio, y +
cos(angulo) * radio);}

        glEnd();

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

{

          int angulo=0;

          glBegin(GL_TRIANGLE_FAN);

// glColor3f (1.0, 0.0, 1.0);

          glVertex2f(x,y);



      for (angulo=0;angulo<=360; angulo+=1){ glVertex2f(x + sin(angulo) * radio, y +
cos(angulo) * radio);}

          glEnd();

}

void dibuja(void)                   //funcion dibuja

{

glClear(GL_COLOR_BUFFER_BIT);



glColor3f(1.0,0.0,0.0);

glBegin(GL_QUADS);

glVertex2f(0,680);

glVertex2f(0,640);

glVertex2f(1640,640);

glVertex2f(1640,680);

glEnd();

//techo

glColor3f(1.0 , 00, 0.0);

glBegin(GL_POLYGON);

glVertex2f(920,1200);

glVertex2f(840,1280);
glVertex2f(400,1280);

glVertex2f(320,1200);

glEnd();

//cuerpo de casa

glColor3f(0.0 , 0.0, 0.0);

glBegin(GL_QUADS);

glVertex2f(360,1200);

glVertex2f(880,1200);

glVertex2f(880,600);

glVertex2f(360,600);

glEnd();

//ventana izquierda

glColor3f(1.0 , 1.0, 1.0);

glBegin(GL_QUADS);

glVertex2f(360,1120);

glVertex2f(360,1000);

glVertex2f(480,1000);

glVertex2f(480,1120);

glEnd();

//ventana derecha

glColor3f(1.0 , 1.0, 1.0);

glBegin(GL_QUADS);

glVertex2f(760,1120);

glVertex2f(760,1000);

glVertex2f(880,1000);

glVertex2f(880,1120);
glEnd();

//linea cuerpo izquierda

glColor3f(0.0 , 1.0, 0.0);

glBegin(GL_QUADS);

glVertex2f(480,1160);

glVertex2f(480,600);

glVertex2f(520,600);

glVertex2f(520,1160);

glEnd();

glColor3f(0.0 , 1.0, 0.0);

glBegin(GL_QUADS);

glVertex2f(720,1160);

glVertex2f(720,600);

glVertex2f(760,600);

glVertex2f(760,1160);

glEnd();

//triangulo ttecho

glColor3f(1.0 , 1.0 , 0.0);

glBegin(GL_TRIANGLES);

glVertex2f(480,1160);

glVertex2f(600,1240);

glVertex2f(760,1160);

glEnd();

//cuadro abajo de triangulo techo

glColor3f(1.0, 0.0,0.0);

glBegin(GL_QUADS);
glVertex2f(520,1160);

glVertex2f(520,1000);

glColor3f(0.0 , 0.0,1.0);

glVertex2f(720,1000);

glColor3f(0.0 , 0.0,0.0);

glVertex2f(720,1160);

glEnd();

glColor3f(0.0, 1.0,0.0);

glBegin(GL_QUADS);

glVertex2f(600,1160);

glVertex2f(600,1000);

glVertex2f(640,1000);

glVertex2f(640,1160);

glEnd();

//vcentanales

glColor3f(1.0,1.0,0.0);

glBegin(GL_QUADS);

glVertex2f(520,1000);

glVertex2f(520,920);

glVertex2f(560,920);

glVertex2f(560,1000);

glEnd();

glColor3f(1.0,1.0,1.0);

glBegin(GL_QUADS);

glVertex2f(560,1000);

glVertex2f(560,920);
glVertex2f(600,920);

glVertex2f(600,1000);

glEnd();

glColor3f(1.0,1.0,0.0);

glBegin(GL_QUADS);

glVertex2f(600,1000);

glVertex2f(600,920);

glVertex2f(640,920);

glVertex2f(640,1000);

glEnd();

glColor3f(1.0,1.0,1.0);

glBegin(GL_QUADS);

glVertex2f(640,1000);

glVertex2f(640,920);

glVertex2f(680,920);

glVertex2f(680,1000);

glEnd();

glColor3f(1.0,1.0,0.0);

glBegin(GL_QUADS);

glVertex2f(680,1000);

glVertex2f(680,920);

glVertex2f(720,920);

glVertex2f(720,1000);

glEnd();

//linea horizontal cuerpo casa

glColor3f(0.0,1.0,0.0);
glBegin(GL_QUADS);

glVertex2f(360,920);

glVertex2f(360,880);

glVertex2f(880,880);

glVertex2f(880,920);

glEnd();

//ventana izquierda abajao

glColor3f(1.0,1.0,1.0);

glBegin(GL_QUADS);

glVertex2f(360,800);

glVertex2f(360,680);

glVertex2f(480,680);

glVertex2f(480,800);

glEnd();

//ventana derecha abajo

glColor3f(1.0,1.0,1.0);

glBegin(GL_QUADS);

glVertex2f(760,800);

glVertex2f(760,680);

glVertex2f(880,680);

glVertex2f(880,800);

glEnd();

//puerta

glColor3f(1.0,0.0,1.0);

glBegin(GL_QUADS);

glVertex2f(520,840);
glVertex2f(520,600);

glVertex2f(720,600);

glVertex2f(720,840);

glEnd();

//dentro de puerta

glColor3f(1.0,0.0,0.0);

glBegin(GL_QUADS);

glVertex2f(560,800);

glVertex2f(560,640);

glVertex2f(640,640);

glVertex2f(640,800);

glEnd();

//manija

glColor3f(0.0,0.0,0.0);

glBegin(GL_QUADS);

glVertex2f(640,720);

glVertex2f(640,680);

glVertex2f(680,680);

glVertex2f(680,720);

glEnd();

//cochera

glColor3f(1.0 , 00, 0.0);

glBegin(GL_POLYGON);

glVertex2f(360,880);

glVertex2f(80,880);

glVertex2f(40,800);
glVertex2f(360,800);

glEnd();

glColor3f(1.0 , 00, 0.0);

glBegin(GL_QUADS);

glVertex2f(0,320);

glVertex2f(0,280);

glColor3f(1.0 , 1.0,0.0);

glVertex2f(1680,280);

glColor3f(1.0 , 1.0,0.0);

glVertex2f(1680,320);

glEnd();

glColor3f(1.0 , 00, 0.0);

glBegin(GL_QUADS);

glVertex2f(520,320);

glVertex2f(520,600);

glColor3f(1.0 , 1.0,0.0);

glVertex2f(720,600);

glColor3f(1.0 , 1.0,0.0);

glVertex2f(720,320);

glEnd();//cuerpo cochera

glColor3f(1.0,0.0,1.0);

glBegin(GL_POLYGON);

glVertex2f(80,800);

glVertex2f(80,600);

glVertex2f(360,600);

glVertex2f(360,800);
glEnd();

glColor3f(1.0 , 1.0,0.0);

glBegin(GL_QUADS);

glVertex2f(0,280);

glVertex2f(0,240);

glVertex2f(1680,240);

glVertex2f(1680,280);

glEnd();

//carretera

glColor3f(0.0 , 0.0,0.0);

glBegin(GL_QUADS);

glVertex2f(0,240);

glVertex2f(0,0);

glVertex2f(1680,0);

glVertex2f(1680,240);

glEnd();

//barras de carretyera

glColor3f(1.0 , 1.0,1.0);

glBegin(GL_QUADS);

glVertex2f(40,160);

glVertex2f(40,120);

glVertex2f(440,120);

glVertex2f(440,160);



glEnd();

glColor3f(1.0 , 1.0,1.0);
glBegin(GL_QUADS);

glVertex2f(520,160);

glVertex2f(520,120);

glVertex2f(920,120);

glVertex2f(920,160);

glEnd();

glColor3f(1.0 , 1.0,1.0);

glBegin(GL_QUADS);

glVertex2f(1080,160);

glVertex2f(1080,120);

glVertex2f(1560,120);

glVertex2f(1560,160);

glEnd();

//pasto

glColor3f(0.0 , 1.0,0.0);

glBegin(GL_QUADS);

glVertex2f(0,600);

glVertex2f(0,320);

glVertex2f(520,320);

glVertex2f(520,600);

glEnd();

glColor3f(0.0 , 1.0,0.0);

glBegin(GL_QUADS);

glVertex2f(720,600);

glVertex2f(720,320);

glVertex2f(1680,320);
glVertex2f(1680,600);

glEnd();

//carro izquierda

glColor3f(1.0,0.0,0.0);

glBegin(GL_POLYGON);

glVertex2f(400,440);

glVertex2f(240,440);

glVertex2f(160,360);

glVertex2f(480,360);

glEnd();

glColor3f(1.0 , 0.0,0.0);

glBegin(GL_QUADS);

glVertex2f(160,360);

glVertex2f(160,280);

glVertex2f(600,280);

glVertex2f(600,360);

glEnd();

//ventanas carro izquierdo

glColor3f(0.0 , 0.0,0.0);

glBegin(GL_QUADS);

glVertex2f(200,400);

glVertex2f(200,320);

glVertex2f(280,320);

glVertex2f(280,400);

glEnd();

glColor3f(0.0 , 0.0,0.0);
glBegin(GL_QUADS);

glVertex2f(320,400);

glVertex2f(320,320);

glVertex2f(400,320);

glVertex2f(400,400);



glEnd();

//trailer

glColor3f(1.0,0.0,0.0);

glBegin(GL_QUADS);

glVertex2f(920,360);

glVertex2f(920,240);

glVertex2f(1160,240);

glVertex2f(1160,360);

glEnd();

glColor3f(1.0 , 1.0 , 1.0);

glBegin(GL_TRIANGLES);

glVertex2f(960,360);

glVertex2f(1000,440);

glVertex2f(1000,360);

glEnd();

glColor3f(1.0,0.0,0.0);

glBegin(GL_QUADS);

glVertex2f(1000,440);

glVertex2f(1000,360);

glVertex2f(1160,360);
glVertex2f(1160,440);



glEnd();

//ventana trailer cuadrada

glColor3f(1.0,1.0,1.0);

glBegin(GL_QUADS);

glVertex2f(1040,440);

glVertex2f(1040,360);

glVertex2f(1120,360);

glVertex2f(1120,440);

glEnd();

//base de treaileer

glColor3f(1.0,0.0,0.0);

glBegin(GL_QUADS);

glVertex2f(880,240);

glVertex2f(880,160);

glVertex2f(1440,160);

glVertex2f(1440,240);

glEnd();

//caja de trailer

glColor3f(1.0,0.0,0.0);

glBegin(GL_QUADS);

glVertex2f(1200,520);

glVertex2f(1200,240);

glVertex2f(1440,240);

glVertex2f(1440,520);
glEnd();

//cosa que le sale al trailer

glColor3f(1.0,0.0,1.0);

glBegin(GL_QUADS);

glVertex2f(840,320);

glVertex2f(840,160);

glVertex2f(880,160);

glVertex2f(880,320);

glEnd();

//a estoes parte de las ventanas de la casa

glColor3f(1.0,0.0,1.0);

glBegin(GL_QUADS);

glVertex2f(360,1080);

glVertex2f(360,1040);

glVertex2f(480,1040);

glVertex2f(480,1080);

glEnd();

glColor3f(1.0,0.0,1.0);

glBegin(GL_QUADS);

glVertex2f(360,760);

glVertex2f(360,720);

glVertex2f(480,720);

glVertex2f(480,760);

glEnd();

glColor3f(1.0,0.0,1.0);

glBegin(GL_QUADS);
glVertex2f(760,1080);

glVertex2f(760,1040);

glVertex2f(880,1040);

glVertex2f(880,1080);

glEnd();

glColor3f(1.0,0.0,1.0);

glBegin(GL_QUADS);

glVertex2f(760,760);

glVertex2f(760,720);

glVertex2f(880,720);

glVertex2f(880,760);

glEnd();

//barandal

glColor3f(1.0,0.0,0.0);

glBegin(GL_QUADS);

glVertex2f(0,720);

glVertex2f(0,600);

glVertex2f(40,600);

glVertex2f(40,720);

glEnd();

glColor3f(1.0,0.0,0.0);

glBegin(GL_QUADS);

glVertex2f(920,720);

glVertex2f(920,600);

glVertex2f(960,600);

glVertex2f(960,720);
glEnd();

glColor3f(1.0,0.0,0.0);

glBegin(GL_QUADS);

glVertex2f(1000,720);

glVertex2f(1000,600);

glVertex2f(1040,600);

glVertex2f(1040,720);

glEnd();

glColor3f(0.6,0.4,0.2);

glBegin(GL_QUADS);

glVertex2f(1080,720);

glVertex2f(1080,600);

glVertex2f(1240,600);

glVertex2f(1240,720);

glEnd();

//tronco

glColor3f(0.6,0.4,0.2);

glBegin(GL_QUADS);

glVertex2f(1120,720);

glVertex2f(1120,600);

glVertex2f(1160,600);

glVertex2f(1160,720);

glEnd();

//ramas

glBegin(GL_LINES);

//llantas
glColor3f(0.6,0.4,0.2);

circulo(240,240,50);

circulo(240,240,25);

glEnd();

glColor3f(0.6,0.4,0.2);

circulo(520,240,50);

circulo(520,240,25);

glEnd();

glColor3f(0.6,0.4,0.2);

circulo(1000,80,100);

circulo(1000,80,50);

glEnd();

glColor3f(0.6,0.4,0.2);

circulo(1360,80,100);

circulo(1360,80,50);



glColor3f(0.0,0.6,0.2);

glBegin(GL_QUADS);

glVertex2f(1000,760);

glVertex2f(1000,720);

glVertex2f(1400,720);

glVertex2f(1400,760);

glEnd();

glColor3f(0.0,0.6,0.2);

glBegin(GL_QUADS);
glVertex2f(1040,840);

glVertex2f(1040,800);

glVertex2f(1320,800);

glVertex2f(1320,840);

glEnd();

glColor3f(0.0,0.6,0.2);

glBegin(GL_QUADS);

glVertex2f(1080,920);

glVertex2f(1080,880);

glVertex2f(1280,880);

glVertex2f(1280,920);

glEnd();

glColor3f(0.0,0.6,0.2);

glBegin(GL_QUADS);

glVertex2f(1120,1000);

glVertex2f(1120,960);

glVertex2f(1240,960);

glVertex2f(1240,1000);

glEnd();

glColor3f(0.0,0.6,0.2);

glBegin(GL_QUADS);

glVertex2f(1160,1080);

glVertex2f(1150,1040);

glVertex2f(1200,1040);

glVertex2f(1200,1080);

glEnd();
//barandal, despues del tronco

glColor3f(1.0,0.0,0.0);

glBegin(GL_QUADS);

glVertex2f(1280,720);

glVertex2f(1280,600);

glVertex2f(1320,600);

glVertex2f(1320,720);

glEnd();

glColor3f(1.0,0.0,0.0);

glBegin(GL_QUADS);

glVertex2f(1360,720);

glVertex2f(1360,600);

glVertex2f(1400,600);

glVertex2f(1400,720);

glEnd();

glColor3f(1.0,0.0,0.0);

glBegin(GL_QUADS);

glVertex2f(1440,720);

glVertex2f(1440,600);

glVertex2f(1480,600);

glVertex2f(1480,720);

glEnd();

glColor3f(1.0,0.0,0.0);

glBegin(GL_QUADS);

glVertex2f(1520,720);

glVertex2f(1520,600);
glVertex2f(1560,600);

glVertex2f(1560,720);

glEnd();

glColor3f(1.0,0.0,0.0);

glBegin(GL_QUADS);

glVertex2f(1600,720);

glVertex2f(1600,600);

glVertex2f(1640,600);

glVertex2f(1640,720);

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




                                          OSO
Primera práctica en la cual oficialmente se ocuparan los círculos para crear con
solo círculos un oso.

Código:

#include <GL/glut.h>

#include <GL/gl.h>

#include <math.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, 2000.0, 0.0, 2000.0);           //vista ortogonal

}

void circuloc(int x, int y, int t, int radio)

{

        int angulo=0;

        glPointSize(t);

        glBegin(GL_POINTS);

//glColor3f (1.0, 0.0, 1.0);

        glVertex2f(x,y);

        //glColor3f(0,0.0,0.0);

      for (angulo=0;angulo<=360; angulo+=1){ glVertex2f(x + sin(angulo) * radio, y +
cos(angulo) * radio);}

        glEnd();

}



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

{

        int angulo=0;

        glBegin(GL_TRIANGLE_FAN);

// glColor3f (1.0, 0.0, 1.0);

        glVertex2f(x,y);



      for (angulo=0;angulo<=360; angulo+=1){ glVertex2f(x + sin(angulo) * radio, y +
cos(angulo) * radio);}

        glEnd();

}

void dibuja(void)                   //funcion dibuja
{

//cara y orejas

glClear(GL_COLOR_BUFFER_BIT);

glColor3f(0.6 , 0.4, 0.2);

circulo(400,1000,120);

circulo(800,1000,120);

circulo(600,840,200);

glEnd();

//cuerpo

glColor3f(0.6 , 0.4, 0.2);

glBegin(GL_QUADS);

glVertex2f(520,640);

glVertex2f(520,360);

glVertex2f(680,360);

glVertex2f(680,640);

glEnd();

//brazos

glColor3f(0.6 , 0.4, 0.2);

glBegin(GL_QUADS);

glVertex2f(360,640);

glVertex2f(360,560);

glVertex2f(520,560);

glVertex2f(520,640);

glEnd();

glColor3f(0.6 , 0.4, 0.2);

glBegin(GL_QUADS);
glVertex2f(680,640);

glVertex2f(680,560);

glVertex2f(840,560);

glVertex2f(840,640);

glEnd();

//piernas

glColor3f(0.6 , 0.4, 0.2);

glBegin(GL_QUADS);

glVertex2f(440,360);

glVertex2f(440,280);

glVertex2f(520,280);

glVertex2f(520,360);

glEnd();

glColor3f(0.6 , 0.4, 0.2);

glBegin(GL_QUADS);

glVertex2f(680,360);

glVertex2f(680,280);

glVertex2f(760,280);

glVertex2f(760,360);

glEnd();

//patas

glColor3f(0.6 , 0.4, 0.2);

circulo(360,320,120);

circulo(840,320,120);

glEnd();

//manos
glColor3f(0.6 , 0.4, 0.2);

circulo(320,600,120);

circulo(880,600,120);

glEnd();

//ojos

glColor3f(0.0 , 0.0, 0.0);

circulo(520,920,40);

circulo(680,920,40);

glEnd();

//ocico

glColor3f(1.0 , 1.0, 1.0);

circulo(600,800,80);

glEnd();

glColor3f(0.0 , 0.0, 0.0);

circulo(600,800,40);

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

}
CUBO CON CUBITOS
Se realizara un cubo hecho de cubos más pequeños y delineados, hasta crear una
práctica parecida a la de cubo con líneas, sustituyendo estas por cubos.

Código:

#include <GL/glut.h>

#include <GL/gl.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, 800.0, 0.0, 800.0);            //vista ortogonal

}



void cubo (int x, int y,int t,int l){

    double a=.8,b=.6;

glColor3f(1.0 , 1.0 , 0.0);

glBegin(GL_QUADS);

glVertex2f(x,y);

glVertex2f(x+t,y);

glVertex2f(x+t,y+t);

glVertex2f(x,y+t);

glColor3f(1.0 , 0.0 , 1.0);

glVertex2f(x,y+t);

glVertex2f(x+t,y+t);

glVertex2f(x+t+(t*a),y+t+(t*b));

glVertex2f(x+(t*a),y+t+(t*b));
glColor3f(1.0 , 0.0 , 0.0);

glVertex2f(x+t,y+t);

glVertex2f(x+t+(t*a),y+t+(t*b));

glVertex2f(x+t+(t*a),y+(t*b));

glVertex2f(x+t,y);

glEnd();



glColor3f(0.0 , 0.0 , 0.0);

glLineWidth(l);

glBegin(GL_LINES);

glVertex2f(x,y);

glVertex2f(x+t,y);

glVertex2f(x+t,y);

glVertex2f(x+t,y+t);

glVertex2f(x+t,y+t);

glVertex2f(x,y+t);

glVertex2f(x,y);




glVertex2f(x,y+t);

glVertex2f(x+t,y+t);

glVertex2f(x+t,y+t);

glVertex2f(x+t+(t*a),y+t+(t*b));

glVertex2f(x+t+(t*a),y+t+(t*b));

glVertex2f(x+(t*a),y+t+(t*b));

glVertex2f(x,y+t);
glVertex2f(x+t+(t*a),y+t+(t*b));

glVertex2f(x+(t*a),y+t+(t*b));



glVertex2f(x+t,y+t);

glVertex2f(x+t+(t*a),y+t+(t*b));

glVertex2f(x+t+(t*a),y+t+(t*b));

glVertex2f(x+t+(t*a),y+(t*b));

glVertex2f(x+t+(t*a),y+(t*b));

glVertex2f(x+t,y);

glVertex2f(x+t,y+t);

glEnd();

    }




void dibuja(void)                  //funcion dibuja

{

glClear(GL_COLOR_BUFFER_BIT);                   //borra pantalla

glColor3f(1.0 , 0.0 , 0.0);

for(int k=0;k<=7;k++){

cubo(240-20*k*.8,200-20*k*.6,20,5);

}

for(int j=0;j<=12;j++){

cubo(260+20*j,220,20,5);

}

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

cubo(260,240+20*i,20,5);
}

for(int k=0;k<=9;k++){

cubo(260-20*k*.8,420-20*k*.6,20,5);

}

for(int j=0;j<=10;j++){

cubo(280+20*j,420,20,5);

}

for(int k=0;k<=9;k++){

cubo(500-20*k*.8,220-20*k*.6,20,5);



}



for(int i=0;i<=8;i++){

cubo(500,240+20*i,20,5);

}

for(int k=0;k<=10;k++){

cubo(500-20*k*.8,420-20*k*.6,20,5);

}



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

cubo(100,100+20*i,20,5);

}

for(int j=0;j<=10;j++){

cubo(120+20*j,100,20,5);



cubo(120+20*j,300,20,5);
}

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




cubo(340,100+20*i,20,5);



}



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

}
MUÑECO CON FORMAS

En esta práctica realizaremos un muñeco con los conocimientos vistos antes, para
ello utilizaremos triángulos, polígonos, círculos, rectángulos, cuadrados y líneas.

Codigo:

//mi primer ventana

#include <GL/glut.h>

#include <GL/gl.h>

#include <GL/glu.h>

#include <math.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, 2000.0, 0.0, 2000.0);           //vista ortogonal

}

void circuloc(int x, int y, int t, int radio)

{

                     int angulo=0;

                     glPointSize(t);

                     glBegin(GL_POINTS);

//glColor3f (1.0, 0.0, 1.0);

                     glVertex2f(x,y);

                     //glColor3f(0,0.0,0.0);

                  for (angulo=0;angulo<=360; angulo+=1){ glVertex2f(x + sin(angulo) *
radio, y + cos(angulo) * radio);}

                     glEnd();

}



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

{

                     int angulo=0;

                     glBegin(GL_TRIANGLE_FAN);

// glColor3f (1.0, 0.0, 1.0);

                     glVertex2f(x,y);



                  for (angulo=0;angulo<=360; angulo+=1){ glVertex2f(x + sin(angulo) *
radio, y + cos(angulo) * radio);}

                     glEnd();

}
void dibuja(void)             //funcion dibuja

{

glClear(GL_COLOR_BUFFER_BIT);

glColor3f(1.0 , 00, 0.0);




// cabeza

glColor3f(0.8,0.7,0.6);     //borra pantalla

circulo(1000,1000,200);

// ojos

glColor3f(0.0,0.0,0.0);

circulo(950,1050,10);

circulo(1100,1050,10);

glEnd();

//orejas

glColor3f(0.8,0.7,0.6);

circulo(800,1000,50);

circulo(1200,1000,50);

glEnd();

//cuello

glBegin(GL_POLYGON);

glColor3f(0.8,0.7,0.6);

glVertex2f(1050,750);

glVertex2f(1050,820);

glVertex2f(950,820);

glVertex2f(950,750);
glVertex2f(1000,650);

// Playera

glBegin(GL_POLYGON);

glColor3f(1.0,0.0,0.0);

glVertex2f(1200,350);

glVertex2f(1200,550);

glVertex2f(1250,450);

glVertex2f(1350,450);

glVertex2f(1200,750);

glVertex2f(1050,750);

glVertex2f(1000,650);

glVertex2f(950,750);

glVertex2f(800,750);

glVertex2f(705,450);

glVertex2f(800,450);

glVertex2f(850,550);

glVertex2f(850,350);

glEnd();

//CUERPO

glBegin(GL_TRIANGLES);

glColor3f(1.0,0.0,0.0);

glVertex2f(1200,350);

glVertex2f(1000,650);

glVertex2f(850,350);

glEnd();

glBegin(GL_QUADS);
glColor3f(0.3,0.17,0.16);

glVertex2f(950,650);

glVertex2f(1050,650);

glVertex2f(1050,550);

glVertex2f(950,550);



glVertex2f(950,500);

glVertex2f(1050,500);

glVertex2f(1050,400);

glVertex2f(950,400);



glVertex2f(1200,350);

glVertex2f(850,350);

glVertex2f(850,300);

glVertex2f(1200,300);



glColor3f(0.0,0.0,0.0);

glVertex2f(950,350);

glVertex2f(1050,350);

glVertex2f(1050,300);

glVertex2f(950,300);



// BRAZOS

glColor3f(0.8,0.5,0.4);

glVertex2f(750,450);

glVertex2f(780,450);
glVertex2f(780,380);

glVertex2f(750,380);



glVertex2f(1275,450);

glVertex2f(1305,450);

glVertex2f(1305,380);

glVertex2f(1275,380);

glEnd();

//MANOS IZQUIERDA

glLineWidth (3);

glBegin(GL_LINES);

glColor3f(0.8,0.5,0.4);



glVertex2i(750,380);

glVertex2i(720,350);



glVertex2i(720,350);

glVertex2i(740,360);



glVertex2i(740,360);

glVertex2i(740,320);



glVertex2i(740,320);

glVertex2i(750,360);



glVertex2i(750,360);
glVertex2i(760,320);



glVertex2i(760,320);

glVertex2i(770,360);



glVertex2i(770,360);

glVertex2i(780,320);



glVertex2i(780,320);

glVertex2i(790,360);



glVertex2i(790,360);

glVertex2i(810,350);



glVertex2i(810,350);

glVertex2f(780,380);



// MANO DERECHA

glVertex2f(1275,380);

glVertex2f(1255,350);



glVertex2f(1255,350);

glVertex2f(1270,360);



glVertex2f(1270,360);

glVertex2f(1270,320);
glVertex2f(1270,320);

glVertex2f(1280,360);



glVertex2f(1280,360);

glVertex2f(1290,320);



glVertex2f(1290,320);

glVertex2f(1300,360);



glVertex2f(1300,360);

glVertex2f(1310,320);



glVertex2f(1310,320);

glVertex2f(1320,360);



glVertex2f(1320,360);

glVertex2f(1340,350);



glVertex2f(1340,350);

glVertex2f(1305,380);




// NARIZ

glColor3f(0.0,0.0,0.0);
glVertex2f(1020,1020);

glVertex2f(1000,1000);



glVertex2f(1000,1000);

glVertex2f(1040,1000);

// BOCA

glVertex2f(975,900);

glVertex2f(975,880);



glVertex2f(975,880);

glVertex2f(1050,880);



glVertex2f(1050,880);

glVertex2f(1050,900);



glEnd();

// CABELLO

glBegin(GL_TRIANGLES);

glColor3f(0.0 , 0.0 , 0.0);

glVertex2f(950,1190);

glVertex2f(1100,1250);

glVertex2f(1050,1190);



glEnd();

 // PANTALON
glBegin(GL_POLYGON);

glColor3f(0.1,0.4,0.7);



glVertex2f(850,300);

glVertex2f(750,100);

glVertex2f(900,50);

glVertex2f(1020,250);

glVertex2f(1020,300);

glEnd();

glBegin(GL_POLYGON);

glColor3f(0.1,0.4,0.7);

glVertex2f(1020,300);

glVertex2f(1020,250);

glVertex2f(1100,50);

glVertex2f(1250,100);

glVertex2f(1200,300);

glEnd();

glBegin(GL_TRIANGLES);

glColor3f(0.0 , 0.0 , 0.0);

glVertex2f(750,100);

glVertex2f(900,50);

glVertex2f(650,50);



glVertex2f(1100,50);

glVertex2f(1250,100);

glVertex2f(1350,50);
glEnd();

glFlush();                     //forza dibujo

}



                //funcion dibuja



                 //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(900,900);               //tamaño de la ventana

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

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

}
ANIMACIÓN CÍRCULO

Al hacer un círculo, se le pondrá movimiento, para que cubra su recorrido las
orillas de la pantalla.

Código:

#include <unistd.h>

#include <GL/glut.h>

#include <GL/gl.h>

#include <math.h>

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

void inicializa(void){

glClearColor(0.0,0.0,1.0,0.0);

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

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

}



void circulo(int x, int y, int radio){
int angulo=0;

          glBegin(GL_TRIANGLE_FAN); glColor3f (0.5, 0.5, 0.5);

          glVertex2f(x,y);

          glColor3f(0,0.0,0.0);

      for (angulo=0;angulo<=360; angulo+=6){ glVertex2f(x + sin(angulo) * radio, y +
cos(angulo) * radio);}

          glEnd();}



void dibuja(void)

{

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

//abajo

if(x>=1 && x<500){circulo(100+1*x,100,40);x++;}

// derecha para arriba

if (x==500 && y>=1 && y<500 ) {circulo(600,100+1*y,40);y++;}

//arriba para izquierda

if (x==500 && y==500 && z>=1 && z<500) {circulo (600-z,600,40);z++;}

//izquerda hacia abajo

if (x==500 && y==500 && z==500 && w>=1 && w<500){circulo (100,600-w,40);w++;}

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

glFlush();

glutSwapBuffers();

}




int main (int argc, char** argv)

{
glutInit(&argc, argv);

glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA| GLUT_DEPTH);

glutInitWindowSize(700,700);

glutInitWindowPosition(10,10);

glutCreateWindow("Ventana");

inicializa();

glutDisplayFunc(dibuja);

glutIdleFunc(dibuja);

glutMainLoop();

return 0;

}
ANIMACIÓN SISTEMA SOLAR.
Movimiento circular, será lo que tendrán nuestros planetas (círculos). Se realizaran
las “orbitas” y sobre su circunferencia de estas, giraran.

Código:

#include <unistd.h>

#include <GL/glut.h>

#include <GL/gl.h>

#include <math.h>

int rad=100;

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

void inicializa(void)

{

glClearColor(0.0,0.0,0.0,0.0);

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

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

}



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

{

        int angulo=0;

        glBegin(GL_TRIANGLE_FAN);

        glVertex2f(x,y);



      for (angulo=0;angulo<=360; angulo++){ glVertex2f(x + sin(angulo) * radio, y +
cos(angulo) * radio);}

        glEnd();
}

void circuloc(int x, int y, int t, int radio)

{

        int angulo=0;

        glPointSize(t);

        glBegin(GL_POINTS);



        glVertex2f(x,y);



      for (angulo=0;angulo<=360; angulo+=1){ glVertex2f(x + sin(angulo) * radio, y +
cos(angulo) * radio);}

        glEnd();

}



void dibuja(void)

{

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);//esto

        glColor3f(1.0,0.0,0.0);

circulo( 500+ sin(ang) * 0,500 + cos(ang) * 0,50); //funcion circulo

glColor3f(1.0,1.0,1.0);

circuloc(500,500,1,100);

circuloc(500,500,1,150);

circuloc(500,500,1,200);

circuloc(500,500,1,250);

circuloc(500,500,1,300);

circuloc(500,500,1,350);

circuloc(500,500,1,400);
circuloc(500,500,1,450);



glColor3f(0.8,0.4,0.1);

circulo( 500+ sin(a) * 100,500 + cos(a) * 100,5);

glColor3f(0.6,0.3,0.1);



circulo( 500+ sin(b) * 150,500 - cos(b) * 150,7);

       glColor3f(0.1,0.7,0.8);

circulo( 500+ sin(c) * 200,500 + cos(c) * 200,10);

       glColor3f(0.8,0.07,0.2);

circulo( 500+ sin(d) * 250,500 - cos(d) * 250,10);

glColor3f(0.9,0.6,0.2);

circulo( 500+ sin(e) * 300,500 + cos(e) * 300,18);

glColor3f(0.2,0.9,0.7);

circulo( 500+ sin(f) * 350,500 - cos(f) * 350,14);

glColor3f(0.2,0.7,0.9);

circulo( 500+ sin(ang) * 400,500 + cos(ang) * 400,12);

glColor3f(0.0,0.1,0.9);

circulo( 500+ sin(a) * 450,500 - cos(a) * 450,12);

a+=0.01; //a=a+0.1;

b+=0.02;

c+=0.03;

d+=0.04;

e+=0.05;

f+=0.06;

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

glutCreateWindow("Ventana");

inicializa();

glutDisplayFunc(dibuja);

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

glutMainLoop();

return 0;

}
MOVIMIENTO EN OCHO.
Con círculos, se simulara un ocho, es decir pegar los círculos, para que dentro de
estos, se mueva una pequeña bolita, que hará un movimiento en forma de ocho.

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

glMatrixMode(GL_PROJECTION);
glLoadIdentity();

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

}



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

        int angulo=0;

        glBegin(GL_TRIANGLE_FAN);

        glVertex2f(x,y);

      for (angulo=0;angulo<=360; angulo+=6){ glVertex2f(x + sin(angulo) * radio, y +
cos(angulo) * radio);}

        glEnd();}

        void dibuja(void)

{

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

glColor3f(1.0, 1.0, 1.0);

circulo(300, 300, 70);

circulo(300,180,70);

glColor3f(0.0,0.0,0.0);

circulo(300,300,50);

circulo(300,180,50);

glColor3f(1.0,0.0,0.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);
b=b + 0.14;

if(b>12.4){a=6.15;b=6.15;}

for(int j=0; j<=10000000; j++) {}

}



glFlush();

glutSwapBuffers();

}



int main (int argc, char** argv)

{

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA| GLUT_DEPTH);

glutInitWindowSize(700,700);

glutInitWindowPosition(10,10);

glutCreateWindow("Ventana");

inicializa();

glutDisplayFunc(dibuja);

glutIdleFunc(dibuja);

glutMainLoop();

return 0;

}
SEMAFORO
En esta práctica realizaremos un semáforo en el cual los colores se cambien
según la ubicación de dicho semáforo, para ello utilizaremos, rectángulos y
círculos así como se muestra a continuación:

Código:

#include <unistd.h>

#include <GL/glut.h>

#include <GL/gl.h>

#include <math.h>

int rad=100;

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

void inicializa(void)

{

glClearColor(0.2,0.6,0.8,1.0);

glMatrixMode(GL_PROJECTION);
glLoadIdentity();

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

                  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
glBegin(GL_QUADS);//Cuadros fondo semaforo

glColor3f(0.2 , 0.6 , 0.);

glVertex2i(170,437);

glVertex2i(320,437);

glVertex2i(320,182);

glVertex2i(170,182);



glVertex2i(229,183);

glVertex2i(278,183);

glVertex2i(278,3);

glVertex2i(229,3);

glEnd();



glColor3f(0.0,0.0,0.0);//Luces Roja

circulo(247,226,34);



glColor3f(0.0,0.0,0.0);//Luces Amarrilla

circulo(247,302,34);



glColor3f(0.0,0.0,0.0);//Luces Verde

circulo(247,381,34);




a=a+1; //velocidad entre mas grande mas rapido y entre menos mas lento
for(int j=1;j<=10000000;j++){}//pausa

if(a>1 && a<20){

glColor3f(1.0,0.0,0.0);//Luces Roja

circulo(247,381,34);

}// se repite idefinidamente

if(a>20 && a<40){

glColor3f(0.0,1.0,0.0);//Luces Roja

circulo(247,226,34);

}// se repite idefinidamente

if(a>40 && a<50){

glColor3f(1.0,1.0,0.0);//Luces Roja

circulo(247,302,34);

}// se repite idefinidamente



if(a>55 && a<50){

glColor3f(1.0,1.0,0.0);//Luces Roja

circulo(247,302,34);

}// se repite idefinidamente



if(a>60 && a<55){

glColor3f(1.0,1.0,0.0);//Luces Roja

circulo(247,302,34);

}// se repite idefinidamente



if(a>60){a=0;}

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

glutInitWindowPosition(10,10);

glutCreateWindow("Ventana");

inicializa();

glutDisplayFunc(dibuja);

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

glutMainLoop();

return 0;

}
CONCLUSION

Nos dimos cuenta que utilizar este programa no es muy difícil ya que
lo único que se tiene que hacer es colocar bien las coordenadas y las
primitivas para que los archivos salgan de la manera que uno quiere
por que si no se hace de la forma anterior no saldrán los trabajos
como se desean, lo único que se nos dificulto fue la realización de
algunas animaciones ya que se necesitan primitivas espaciales para
que ocurra cierta animación.

Más contenido relacionado

La actualidad más candente

Iluminiacion y sombreado
Iluminiacion y sombreadoIluminiacion y sombreado
Iluminiacion y sombreadoFredy Jmnz Rjs
 
ETAPAS Y SUB ETAPAS DE LA METODOLOGÍA XP
ETAPAS Y SUB ETAPAS DE LA METODOLOGÍA XPETAPAS Y SUB ETAPAS DE LA METODOLOGÍA XP
ETAPAS Y SUB ETAPAS DE LA METODOLOGÍA XPJglory22
 
Como instalar Prolog en Windows
Como instalar Prolog en WindowsComo instalar Prolog en Windows
Como instalar Prolog en WindowsCesarMartinez474
 
Funciones y procedimientos propios de LPP
Funciones y procedimientos propios de LPPFunciones y procedimientos propios de LPP
Funciones y procedimientos propios de LPPurumisama
 
Descomposición modular y estilos de control
Descomposición modular y estilos de controlDescomposición modular y estilos de control
Descomposición modular y estilos de controlJuan Pablo Bustos Thames
 
investigacion unidad tres componentes y librerias
investigacion unidad tres componentes y libreriasinvestigacion unidad tres componentes y librerias
investigacion unidad tres componentes y libreriasAnel Sosa
 
Unidad 10 Mad Diagrama De Clases
Unidad 10 Mad Diagrama De ClasesUnidad 10 Mad Diagrama De Clases
Unidad 10 Mad Diagrama De ClasesSergio Sanchez
 
02 examen diagnóstico bd
02 examen diagnóstico bd02 examen diagnóstico bd
02 examen diagnóstico bdJosé Mendoza
 
Diagramas De Estado
Diagramas De EstadoDiagramas De Estado
Diagramas De Estadoguest5ed375
 
Principios de RUP
Principios de RUPPrincipios de RUP
Principios de RUPradoslawkb
 
Interfaz gráfica de usuario y eventos (introducción)
Interfaz gráfica de usuario y eventos (introducción)Interfaz gráfica de usuario y eventos (introducción)
Interfaz gráfica de usuario y eventos (introducción)Omar B.
 
Lenguajes de programación lógica
Lenguajes de programación lógicaLenguajes de programación lógica
Lenguajes de programación lógicaDarwin_Cusme
 

La actualidad más candente (20)

DIAGRAMAS DE CLASE
DIAGRAMAS DE CLASEDIAGRAMAS DE CLASE
DIAGRAMAS DE CLASE
 
Iluminiacion y sombreado
Iluminiacion y sombreadoIluminiacion y sombreado
Iluminiacion y sombreado
 
ETAPAS Y SUB ETAPAS DE LA METODOLOGÍA XP
ETAPAS Y SUB ETAPAS DE LA METODOLOGÍA XPETAPAS Y SUB ETAPAS DE LA METODOLOGÍA XP
ETAPAS Y SUB ETAPAS DE LA METODOLOGÍA XP
 
Como instalar Prolog en Windows
Como instalar Prolog en WindowsComo instalar Prolog en Windows
Como instalar Prolog en Windows
 
Dev-C++
Dev-C++ Dev-C++
Dev-C++
 
16 Curso de POO en java - arreglos unidimensionales
16 Curso de POO en java - arreglos unidimensionales16 Curso de POO en java - arreglos unidimensionales
16 Curso de POO en java - arreglos unidimensionales
 
Funciones y procedimientos propios de LPP
Funciones y procedimientos propios de LPPFunciones y procedimientos propios de LPP
Funciones y procedimientos propios de LPP
 
Funciones
FuncionesFunciones
Funciones
 
Diagrama de Componentes
Diagrama de ComponentesDiagrama de Componentes
Diagrama de Componentes
 
Descomposición modular y estilos de control
Descomposición modular y estilos de controlDescomposición modular y estilos de control
Descomposición modular y estilos de control
 
investigacion unidad tres componentes y librerias
investigacion unidad tres componentes y libreriasinvestigacion unidad tres componentes y librerias
investigacion unidad tres componentes y librerias
 
Unidad 10 Mad Diagrama De Clases
Unidad 10 Mad Diagrama De ClasesUnidad 10 Mad Diagrama De Clases
Unidad 10 Mad Diagrama De Clases
 
02 examen diagnóstico bd
02 examen diagnóstico bd02 examen diagnóstico bd
02 examen diagnóstico bd
 
Principios del RUP
Principios del RUPPrincipios del RUP
Principios del RUP
 
Diagramas De Estado
Diagramas De EstadoDiagramas De Estado
Diagramas De Estado
 
Principios de RUP
Principios de RUPPrincipios de RUP
Principios de RUP
 
Interfaz gráfica de usuario y eventos (introducción)
Interfaz gráfica de usuario y eventos (introducción)Interfaz gráfica de usuario y eventos (introducción)
Interfaz gráfica de usuario y eventos (introducción)
 
Método de Vuelta Atrás (Backtracking)
Método de Vuelta Atrás (Backtracking)Método de Vuelta Atrás (Backtracking)
Método de Vuelta Atrás (Backtracking)
 
Manual opengl
Manual openglManual opengl
Manual opengl
 
Lenguajes de programación lógica
Lenguajes de programación lógicaLenguajes de programación lógica
Lenguajes de programación lógica
 

Similar a Manual de practicas de Open GL

Open gl tutorial diana hernandez 303
Open gl tutorial diana hernandez 303Open gl tutorial diana hernandez 303
Open gl tutorial diana hernandez 303Pablo Solis
 
Practicas para slider Rene Dominguez
Practicas para slider Rene Dominguez Practicas para slider Rene Dominguez
Practicas para slider Rene Dominguez Mery_Angie_Ugalde
 
Practicas OpenglC++
Practicas OpenglC++Practicas OpenglC++
Practicas OpenglC++jesicecytem
 
Proyecto de reneya terminado
Proyecto de reneya terminadoProyecto de reneya terminado
Proyecto de reneya terminadoKaren_Avilaa
 
Proyecto de reneya terminado
Proyecto de reneya terminadoProyecto de reneya terminado
Proyecto de reneya terminadojesicecytem
 
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
 
Programa de cuadrado en c++
Programa de cuadrado en c++Programa de cuadrado en c++
Programa de cuadrado en c++Aliana_A
 
Utilización del software de diseño(C++)
Utilización del software de diseño(C++) Utilización del software de diseño(C++)
Utilización del software de diseño(C++) equipo3-303
 
Intro opengl
Intro openglIntro opengl
Intro openglsispro
 
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
 
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
 
Google maps by Jordan Diaz
Google maps by Jordan DiazGoogle maps by Jordan Diaz
Google maps by Jordan DiazJordan Diaz
 
Manual de photoshop leidy vivani olvera leon
Manual de photoshop leidy vivani olvera leonManual de photoshop leidy vivani olvera leon
Manual de photoshop leidy vivani olvera leonmakapxndx
 

Similar a Manual de practicas de Open GL (20)

Open gl tutorial diana hernandez 303
Open gl tutorial diana hernandez 303Open gl tutorial diana hernandez 303
Open gl tutorial diana hernandez 303
 
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
 
Practicas OpenglC++
Practicas OpenglC++Practicas OpenglC++
Practicas OpenglC++
 
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
 
Estela y naye
Estela y nayeEstela y naye
Estela y naye
 
Manual open gl
Manual open glManual open gl
Manual open gl
 
Manual open gl
Manual open glManual open gl
Manual open gl
 
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
 
Programa de cuadrado en c++
Programa de cuadrado en c++Programa de cuadrado en c++
Programa de cuadrado en c++
 
Manual
ManualManual
Manual
 
Utilización del software de diseño(C++)
Utilización del software de diseño(C++) Utilización del software de diseño(C++)
Utilización del software de diseño(C++)
 
Intro opengl
Intro openglIntro opengl
Intro opengl
 
Renee opengl karla
Renee opengl karlaRenee opengl karla
Renee opengl karla
 
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
 
Manual de prácticas belmonte & ponce
Manual de prácticas belmonte & ponce Manual de prácticas belmonte & ponce
Manual de prácticas belmonte & ponce
 
Google maps by Jordan Diaz
Google maps by Jordan DiazGoogle maps by Jordan Diaz
Google maps by Jordan Diaz
 
Manual de photoshop leidy vivani olvera leon
Manual de photoshop leidy vivani olvera leonManual de photoshop leidy vivani olvera leon
Manual de photoshop leidy vivani olvera leon
 

Más de Alincita Simon

Manual de Practicas Photoshop
Manual de Practicas PhotoshopManual de Practicas Photoshop
Manual de Practicas PhotoshopAlincita Simon
 
Manual de Practicas Photoshop
Manual de Practicas PhotoshopManual de Practicas Photoshop
Manual de Practicas PhotoshopAlincita Simon
 
Herramientas de photoshop
Herramientas de photoshopHerramientas de photoshop
Herramientas de photoshopAlincita Simon
 
manual de practicas de opengl
manual de practicas de openglmanual de practicas de opengl
manual de practicas de openglAlincita Simon
 
Manual de practicas de dev c++
Manual de practicas de dev c++Manual de practicas de dev c++
Manual de practicas de dev c++Alincita Simon
 
Proyecto de rene terminado
Proyecto de rene terminado   Proyecto de rene terminado
Proyecto de rene terminado Alincita Simon
 

Más de Alincita Simon (7)

Manual de Practicas Photoshop
Manual de Practicas PhotoshopManual de Practicas Photoshop
Manual de Practicas Photoshop
 
Manual de Practicas Photoshop
Manual de Practicas PhotoshopManual de Practicas Photoshop
Manual de Practicas Photoshop
 
Herramientas de photoshop
Herramientas de photoshopHerramientas de photoshop
Herramientas de photoshop
 
Ventana de photoshop
Ventana de photoshopVentana de photoshop
Ventana de photoshop
 
manual de practicas de opengl
manual de practicas de openglmanual de practicas de opengl
manual de practicas de opengl
 
Manual de practicas de dev c++
Manual de practicas de dev c++Manual de practicas de dev c++
Manual de practicas de dev c++
 
Proyecto de rene terminado
Proyecto de rene terminado   Proyecto de rene terminado
Proyecto de rene terminado
 

Manual de practicas de Open GL