martes, 12 de noviembre de 2013

Actividad #12 Investigar -Lineas


Actividad #12 Investigar -Lineas

Investigar :
  • Algoritmo DDA para generación de líneas
  • Algoritmo de Bresenham para trazar líneas

Actividad: Buscar Programas que utilizen los algoritmos anteriores y opengl, ejecutelos y capture las pantallas, examine el código para entenderlo.

  • Algoritmo DDA para generación de líneas
El Algoritmo DDA es un algoritmo de línea de conversión de rastreo que se basa en el cálculo ya sea en el incremento de X o en el incremento de Y. La finalidad de este algoritmo es determinar los valores enteros correspondientes más próximos a la trayectoria de la línea para la otra coordenada.

Algoritmo DDA
public static void ddaDibujar(double x1,double y1,double x2, double y2)
{
double xinicial = x1, yinicial = y1, xfinal = x2, yfinal = y2,x,y;
double deltax, deltay, xincremento, yincremento;
double pasos;
deltax = xfinal - xinicial;
deltay = yfinal - yinicial;
if (Math.Abs(deltax) > Math.Abs(deltay))
pasos = Math.Abs(deltax);
else
pasos = Math.Abs(deltay);
xincremento = (deltax / pasos) / 10;
yincremento = (deltay / pasos) / 10;
x = xinicial;
y = yinicial;
Gl.glBegin(Gl.GL_POINTS);
Gl.glVertex2d(x, y);//funcion que pinta un pixel en las coordenadas especificadas
for (double k = .1; k <= pasos; k += .1)
{
x = (x + xincremento);
y = (y + yincremento);
Gl.glVertex2d(x, y);
}
Gl.glEnd();
//termina dda
}


Código DDA en c#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Tao.OpenGl;
using Tao.FreeGlut;
using System.Runtime.InteropServices;
namespace AlgoritmoDDA
{
class Program
{
static double x1, y1, x2, y2;
static void Main(string[] args)
{
Console.WriteLine("introduzca el valor de X1");
x1 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("introduzca el valor de Y1");
y1 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("introduzca el valor de X2");
x2 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("introduzca el valor de Y2");
y2 = Convert.ToDouble(Console.ReadLine());
Glut.glutInit();//funciones propias de opengl
Glut.glutInitDisplayMode(Glut.GLUT_SINGLE | Glut.GLUT_RGB);
Glut.glutInitWindowSize(640, 480);//creamos una ventana
Glut.glutCreateWindow("**************Algoritmo DDA**************");//colocamos titulo a la ventana
//llamamos a la funcion dda
Glut.glutDisplayFunc(dda);
Glut.glutMainLoop();
}
public static void dda()
{
//componentes necesarios de opengl
Gl.glClear(Gl.GL_COLOR_BUFFER_BIT);//limpia el buffer de la pantall
Gl.glColor3f(0.6F, 0.6F, 0.6F);//poner color a los pixeles
Gl.glLoadIdentity();//''muy importante;
Gl.glPointSize(2.0f);//medida de los puntos
Gl.glBegin(Gl.GL_POINTS);//funcion para dibujar puntos
//dibujando el plano
float z = -1, w = 1, c = 0;
for (int i = 0; i < 200; i++)
{
Gl.glColor3f(w, c, z);
Gl.glVertex2d(z, 0);
Gl.glVertex2d(0, w);
z += .01f;
w -= .01f;
c += .1f;
}
Gl.glEnd();//termina funcion para dibujar puntos
///pasamos las
Gl.glPointSize(5.0f);//sirve para el tamaño de los pixeles
Gl.glColor3f(0.6f, 1.0f, 0.6f);//sirve para el color de los pixeles
ddaDibujar(x1, y1, x2, y2);
}
public static void ddaDibujar(double x1, double y1, double x2, double y2)
{
double xinicial = x1, yinicial = y1, xfinal = x2, yfinal = y2, x, y;
double deltax, deltay, xincremento, yincremento;
double pasos;
deltax = xfinal - xinicial;
deltay = yfinal - yinicial;
if (Math.Abs(deltax) > Math.Abs(deltay))
pasos = Math.Abs(deltax);
else
pasos = Math.Abs(deltay);
xincremento = (deltax / pasos) / 10;
yincremento = (deltay / pasos) / 10;
x = xinicial;
y = yinicial;
Gl.glBegin(Gl.GL_POINTS);
Gl.glVertex2d(x, y);//funcion que pinta un pixel en las coordenadas especificadas
for (double k = .1; k <= pasos; k += .1)
{
x = (x + xincremento);
y = (y + yincremento);
Gl.glVertex2d(x, y);
}
Gl.glEnd();
//termina dda
}
}
}




  • Algoritmo de Bresenham para trazar líneas
El algoritmo de Bresenham es un algoritmo creado para dibujar rectas en los dispositivos de gráficos rasterizados, como por ejemplo un monitor de ordenador, que determina qué pixeles se rellenarán, en función de la inclinación del ángulo de la recta a dibujar.
Algoritmo Bresenham:
public static void BresenDibujar(double x1,double y1,double x2,double y2)
{
double xinicial = x1, yinicial = y1, xfinal = x2, yfinal= y2, x=0, y=0;
double deltax, deltay, constanteP,ultimo;
deltax = Math.Abs( xfinal - xinicial);
deltay =Math.Abs( yfinal - yinicial);
constanteP = 2 * deltay - deltax;
if (xinicial > xfinal)
{
x = xfinal;
y = yfinal;
ultimo = xinicial;
}
else
{
x = xinicial;
y = yinicial;
ultimo = xfinal;
}
Gl.glBegin(Gl.GL_POINTS);
//Gl.glColor3f(1f, 1.0f, .5f);
Gl.glVertex2d(x, y);
while (x < ultimo)
{
x += .1;
if (constanteP < 0)
constanteP +=2 * deltay;
else
{
y += .1;
constanteP += 2 * (deltay - deltax);
}
Gl.glVertex2d(x, y);
}
Gl.glEnd();
}


Código en c#:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Tao.OpenGl;
using Tao.FreeGlut;
using System.Runtime.InteropServices;

namespace AlgoritmoDDA
{
class Program
{
static double x1, y1, x2, y2;
static void Main(string[] args)
{
Console.WriteLine("introduzca el valor de X1");
x1 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("introduzca el valor de Y1");
y1 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("introduzca el valor de X2");
x2 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("introduzca el valor de Y2");
y2 = Convert.ToDouble(Console.ReadLine());

//inicializar todo esto para tao opengl
Glut.glutInit();//funciones propias de opengl
Glut.glutInitDisplayMode(Glut.GLUT_SINGLE | Glut.GLUT_RGB);
Glut.glutInitWindowSize(640, 480);//creamos una ventana
Glut.glutCreateWindow("**************Bresenham**************");//colocamos titulo a la ventana
//termina inicializacion de componentes tao opengl, llamamos a la funcion Bresen
Glut.glutDisplayFunc(Bresen);
Glut.glutMainLoop();
}

public static void Bresen()
{
//componentes necesarios de opengl
Gl.glClear(Gl.GL_COLOR_BUFFER_BIT);//limpia el buffer de la pantall
Gl.glColor3f(0.6F, 0.6F, 0.6F);//poner color a los pixeles
Gl.glLoadIdentity();//''muy importante;
Gl.glBegin(Gl.GL_POINTS);//funcion para dibujar puntos
//dibujando el plano
float z = -1, w = 1, c = 0;
for (int i = 0; i < 200; i++)
{
Gl.glColor3f(w, c, z);
Gl.glVertex2d(z, 0);
Gl.glVertex2d(0, w);
z += .01f;
w -= .01f;
c += .1f;
}
Gl.glEnd();//termina funcion para dibujar puntos
///pasamos las
Gl.glPointSize(5.0f);//sirve para el tamaño de los pixeles
Gl.glColor3f(1.0f, 0.111f, 1.0f);//sirve para el color de los pixeles
BresenDibujar(x1, y1, x2, y2);//llama a la funcion bresenDibujar
}
public static void BresenDibujar(double x1, double y1, double x2, double y2)
{
double xinicial = x1, yinicial = y1, xfinal = x2, yfinal = y2, x = 0, y = 0;
double deltax, deltay, constanteP, ultimo;
deltax = Math.Abs(xfinal - xinicial);
deltay = Math.Abs(yfinal - yinicial);
constanteP = 2 * deltay - deltax;
if (xinicial > xfinal)
{
x = xfinal;
y = yfinal;
ultimo = xinicial;
}
else
{
x = xinicial;
y = yinicial;
ultimo = xfinal;
}
Gl.glBegin(Gl.GL_POINTS);
//Gl.glColor3f(1f, 1.0f, .5f);
Gl.glVertex2d(x, y);
while (x < ultimo)
{
x += .1;
if (constanteP < 0)
constanteP += 2 * deltay;
else
{
y += .1;
constanteP += 2 * (deltay - deltax);
}
Gl.glVertex2d(x, y);
}
Gl.glEnd();
}
}
}



Fuente:

http://opengl.blogspot.es/tags/algoritmo/
http://opengl.blogspot.es/1235266620/
http://www.dcases.com/68/c-y-opengl-parte-i-inicializacion-de-opengl/

jueves, 31 de octubre de 2013

Actividad#9 Robot, Blender

Actividad#9 Robot, Blender






Fuente: http://blenderart.org/2009/10/20/modeling-a-robot-tutorial/

martes, 22 de octubre de 2013

Actividad #7 Unidad III Perspectiva - Cubo

Actividad #7 Programa Perpectiva:


// Perspectiva_Cubo.cpp: define el punto de entrada de la aplicación de consola.
//
#include "stdafx.h"
#include <stdlib.h>
#include <GL/glut.h>

GLfloat angulox = 0.0f; // variable para el angulo x
GLfloat anguloy = 0.0f; // variable para el angulo y

GLint ancho=600;
GLint alto=600;


void reshape(int width, int height)/*Esta acción afecta en principio directamente al render, puesto que se está cambiando el tamaño del plano de proyección.*/
{
 glViewport(0,0,width,height);
 glMatrixMode(GL_PROJECTION);
 glLoadIdentity();
 gluPerspective(118.0f, (GLfloat)width/(GLfloat)height, 30.0f, 6.0f);
 //glOrtho(-120,120,-60,60,-70,70);/*define la proyección definida por los ejes x,y,z. Estos parámetros demilitan el volumen de vista y son, por este orden: x_mínima, x_máxima, y_mínima, y_máxima, z_mínima, z_máxima,*/
 glMatrixMode(GL_MODELVIEW);

 ancho = width;
 alto = height;
}

void cubos(void)
{

 /*==============================================================Atrás==========================================================*/
 //arriba-derecha//sincolor
 glBegin(GL_POLYGON);
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(-7.8,7.8,2.8);//1
 glVertex3f(-2.8,7.8,2.8);//2
 glVertex3f(-2.8,2.8,2.8);//3
 glVertex3f(-7.8,2.8,2.8);//4
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(0.0f,0.0f,1.0f);// azul
 glVertex3f(-7.8,7.8,7.8);//1'
 glVertex3f(-2.8,7.8,7.8);//2'
 glVertex3f(-2.8,2.8,7.8);//3'
 glVertex3f(-7.8,2.8,7.8);//4'
 glEnd();
    glBegin(GL_POLYGON);
 glColor3f(0.5f, 0.0f, 1.0f); //morado
 glVertex3f(-7.8,7.8,2.8);//1
 glVertex3f(-7.8,7.8,7.8);//1'
 glVertex3f(-7.8,2.8,7.8);//4'
 glVertex3f(-7.8,2.8,2.8);//4
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(0.0f, 1.0f, 0.0f); // verde
 glVertex3f(-7.8,7.8,2.8);//1
 glVertex3f(-7.8,7.8,7.8);//1'
 glVertex3f(-2.8,7.8,7.8);//2'
 glVertex3f(-2.8,7.8,2.8);//2
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(-2.8,7.8,2.8);//2
 glVertex3f(-2.8,7.8,7.8);//2'
 glVertex3f(-2.8,2.8,7.8);//3'
 glVertex3f(-2.8,2.8,2.8);//3
 glEnd();
 glBegin(GL_POLYGON);
 glVertex3f(-2.8,2.8,2.8);//3
 glVertex3f(-2.8,2.8,7.8);//3'
 glVertex3f(-7.8,2.8,7.8);//4'
 glVertex3f(-7.8,2.8,2.8);//4
 glEnd();

 //arriba-centro
 glBegin(GL_POLYGON);//
 glVertex3f(-2.5,7.8,2.8);//1
 glVertex3f(2.5,7.8,2.8);//2
 glVertex3f(2.5,2.8,2.8);//3
 glVertex3f(-2.5,2.8,2.8);//4
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(0.0f,0.0f,1.0f);// azul
 glVertex3f(-2.5,7.8,7.8);//1'
 glVertex3f(2.5,7.8,7.8);//2'
 glVertex3f(2.5,2.8,7.8);//3'
 glVertex3f(-2.5,2.8,7.8);//4'
 glEnd();
    glBegin(GL_POLYGON);//
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(-2.5,7.8,2.8);//1
 glVertex3f(-2.5,7.8,7.8);//1'
 glVertex3f(-2.5,2.8,7.8);//4'
 glVertex3f(-2.5,2.8,2.8);//4
 glEnd();
 glBegin(GL_POLYGON);//
 glColor3f(0.0f, 1.0f, 0.0f); // verde
 glVertex3f(-2.5,7.8,2.8);//1
 glVertex3f(-2.5,7.8,7.8);//1'
 glVertex3f(2.5,7.8,7.8);//2'
 glVertex3f(2.5,7.8,2.8);//2
 glEnd();
 glBegin(GL_POLYGON);//
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(2.5,7.8,2.8);//2
 glVertex3f(2.5,7.8,7.8);//2'
 glVertex3f(2.5,2.8,7.8);//3'
 glVertex3f(2.5,2.8,2.8);//3
 glEnd();
 glBegin(GL_POLYGON);//
 glVertex3f(2.5,2.8,2.8);//3
 glVertex3f(2.5,2.8,7.8);//3'
 glVertex3f(-2.5,2.8,7.8);//4'
 glVertex3f(-2.5,2.8,2.8);//4
 glEnd();

 //arriba derecha
 glBegin(GL_POLYGON);//
 glVertex3f(2.8,7.8,2.8);//1
 glVertex3f(7.8,7.8,2.8);//2
 glVertex3f(7.8,2.8,2.8);//3
 glVertex3f(2.8,2.8,2.8);//4
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(0.0f,0.0f,1.0f);// azul
 glVertex3f(2.8,7.8,7.8);//1'
 glVertex3f(7.8,7.8,7.8);//2'
 glVertex3f(7.8,2.8,7.8);//3'
 glVertex3f(2.8,2.8,7.8);//4'
 glEnd();
    glBegin(GL_POLYGON);//
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(2.8,7.8,2.8);//1
 glVertex3f(2.8,7.8,7.8);//1'
 glVertex3f(2.8,2.8,7.8);//4'
 glVertex3f(2.8,2.8,2.8);//4
 glEnd();
 glBegin(GL_POLYGON);//
 glColor3f(0.0f, 1.0f, 0.0f); // verde
 glVertex3f(2.8,7.8,2.8);//1
 glVertex3f(2.8,7.8,7.8);//1'
 glVertex3f(7.8,7.8,7.8);//2'
 glVertex3f(7.8,7.8,2.8);//2
 glEnd();
 glBegin(GL_POLYGON);//
 glColor3f(1.0f, 0.0f, 0.0f); // rojo
 glVertex3f(7.8,7.8,2.8);//2
 glVertex3f(7.8,7.8,7.8);//2'
 glVertex3f(7.8,2.8,7.8);//3'
 glVertex3f(7.8,2.8,2.8);//3
 glEnd();
 glBegin(GL_POLYGON);//
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(7.8,2.8,2.8);//3
 glVertex3f(7.8,2.8,7.8);//3'
 glVertex3f(2.8,2.8,7.8);//4'
 glVertex3f(2.8,2.8,2.8);//4
 glEnd();

 //centro - izquierda
 glBegin(GL_POLYGON);//
 glVertex3f(-7.8,2.5,2.8);//1
 glVertex3f(-2.8,2.5,2.8);//2
 glVertex3f(-2.8,-2.5,2.8);//3
 glVertex3f(-7.8,-2.5,2.8);//4
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(0.0f,0.0f,1.0f);// azul
 glVertex3f(-7.8,2.5,7.8);//1'
 glVertex3f(-2.8,2.5,7.8);//2'
 glVertex3f(-2.8,-2.5,7.8);//3'
 glVertex3f(-7.8,-2.5,7.8);//4'
 glEnd();
    glBegin(GL_POLYGON);//
 glColor3f(0.5f, 0.0f, 1.0f); //morado
 glVertex3f(-7.8,2.5,2.8);//1
 glVertex3f(-7.8,2.5,7.8);//1'
 glVertex3f(-7.8,-2.5,7.8);//4'
 glVertex3f(-7.8,-2.5,2.8);//4
 glEnd();
 glBegin(GL_POLYGON);//
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(-7.8,2.5,2.8);//1
 glVertex3f(-7.8,2.5,7.8);//1'
 glVertex3f(-2.8,2.5,7.8);//2'
 glVertex3f(-2.8,2.5,2.8);//2
 glEnd();
 glBegin(GL_POLYGON);//
 glVertex3f(-2.8,2.5,2.8);//2
 glVertex3f(-2.8,2.5,7.8);//2'
 glVertex3f(-2.8,-2.5,7.8);//3'
 glVertex3f(-2.8,-2.5,2.8);//3
 glEnd();
 glBegin(GL_POLYGON);//
 glVertex3f(-2.8,-2.5,2.8);//3
 glVertex3f(-2.8,-2.5,7.8);//3'
 glVertex3f(-7.8,-2.5,7.8);//4'
 glVertex3f(-7.8,-2.5,2.8);//4
 glEnd();

 //centro centro
 glBegin(GL_POLYGON);//
 glVertex3f(-2.5,2.5,2.8);//1
 glVertex3f(2.5,2.5,2.8);//2
 glVertex3f(2.5,-2.5,2.8);//3
 glVertex3f(-2.5,-2.5,2.8);//4
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(0.0f,0.0f,1.0f);// azul
 glVertex3f(-2.5,2.5,7.8);//1'
 glVertex3f(2.5,2.5,7.8);//2'
 glVertex3f(2.5,-2.5,7.8);//3'
 glVertex3f(-2.5,-2.5,7.8);//4'
 glEnd();
 glBegin(GL_POLYGON);//
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(-2.5,2.5,2.8);//1
 glVertex3f(-2.5,2.5,7.8);//1'
 glVertex3f(-2.5,-2.5,7.8);//4'
 glVertex3f(-2.5,-2.5,2.8);//4
 glEnd();
 glBegin(GL_POLYGON);//
 glVertex3f(-2.5,2.5,2.8);//1
 glVertex3f(-2.5,2.5,7.8);//1'
 glVertex3f(2.5,2.5,7.8);//2'
 glVertex3f(2.5,2.5,2.8);//2
 glEnd();
 glBegin(GL_POLYGON);//
 glVertex3f(2.5,2.5,2.8);//2
 glVertex3f(2.5,2.5,7.8);//2'
 glVertex3f(2.5,-2.5,7.8);//3'
 glVertex3f(2.5,-2.5,2.8);//3
 glEnd();
 glBegin(GL_POLYGON);//
 glVertex3f(2.5,-2.5,2.8);//3
 glVertex3f(2.5,-2.5,7.8);//3'
 glVertex3f(-2.5,-2.5,7.8);//4'
 glVertex3f(-2.5,-2.5,2.8);//4
 glEnd();

 //centro-derecha
 glBegin(GL_POLYGON);//
 glVertex3f(2.8,2.5,2.8);//1
 glVertex3f(7.8,2.5,2.8);//2
 glVertex3f(7.8,-2.5,2.8);//3
 glVertex3f(2.8,-2.5,2.8);//4
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(0.0f,0.0f,1.0f);// azul
 glVertex3f(2.8,2.5,7.8);//1'
 glVertex3f(7.8,2.5,7.8);//2'
 glVertex3f(7.8,-2.5,7.8);//3'
 glVertex3f(2.8,-2.5,7.8);//4'
 glEnd();
    glBegin(GL_POLYGON);//
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(2.8,2.5,2.8);//1
 glVertex3f(2.8,2.5,7.8);//1'
 glVertex3f(2.8,-2.5,7.8);//4'
 glVertex3f(2.8,-2.5,2.8);//4
 glEnd();
 glBegin(GL_POLYGON);//
 glVertex3f(2.8,2.5,2.8);//1
 glVertex3f(2.8,2.5,7.8);//1'
 glVertex3f(7.8,2.5,7.8);//2'
 glVertex3f(7.8,2.5,2.8);//2
 glEnd();
 glBegin(GL_POLYGON);//
    glColor3f(1.0f, 0.0f, 0.0f); // rojo
 glVertex3f(7.8,2.5,2.8);//2
 glVertex3f(7.8,2.5,7.8);//2'
 glVertex3f(7.8,-2.5,7.8);//3'
 glVertex3f(7.8,-2.5,2.8);//3
 glEnd();
 glBegin(GL_POLYGON);//
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(7.8,-2.5,2.8);//3
 glVertex3f(7.8,-2.5,7.8);//3'
 glVertex3f(2.8,-2.5,7.8);//4'
 glVertex3f(2.8,-2.5,2.8);//4
 glEnd();

 //Abajo izq
 glBegin(GL_POLYGON);//
 glVertex3f(-7.8,-2.8,2.8);//1
 glVertex3f(-2.8,-2.8,2.8);//2
 glVertex3f(-2.8,-7.8,2.8);//3
 glVertex3f(-7.8,-7.8,2.8);//4
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(0.0f,0.0f,1.0f);// azul
 glVertex3f(-7.8,-2.8,7.8);//1'
 glVertex3f(-2.8,-2.8,7.8);//2'
 glVertex3f(-2.8,-7.8,7.8);//3'
 glVertex3f(-7.8,-7.8,7.8);//4'
 glEnd();
    glBegin(GL_POLYGON);//
 glColor3f(0.5f, 0.0f, 1.0f); //morado
 glVertex3f(-7.8,-2.8,2.8);//1
 glVertex3f(-7.8,-2.8,7.8);//1'
 glVertex3f(-7.8,-7.8,7.8);//4'
 glVertex3f(-7.8,-7.8,2.8);//4
 glEnd();
 glBegin(GL_POLYGON);//
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(-7.8,-2.8,2.8);//1
 glVertex3f(-7.8,-2.8,7.8);//1'
 glVertex3f(-2.8,-2.8,7.8);//2'
 glVertex3f(-2.8,-2.8,2.8);//2
 glEnd();
 glBegin(GL_POLYGON);//
 glVertex3f(-2.8,-2.8,2.8);//2
 glVertex3f(-2.8,-2.8,7.8);//2'
 glVertex3f(-2.8,-7.8,7.8);//3'
 glVertex3f(-2.8,-7.8,2.8);//3
 glEnd();
 glBegin(GL_POLYGON);//
 glColor3f(1.0f,1.0f,1.0f);//blanco
 glVertex3f(-2.8,-7.8,2.8);//3
 glVertex3f(-2.8,-7.8,7.8);//3'
 glVertex3f(-7.8,-7.8,7.8);//4'
 glVertex3f(-7.8,-7.8,2.8);//4
 glEnd();

 //abajo centro
 glBegin(GL_POLYGON);//
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(-2.5,-2.8,2.8);//1
 glVertex3f(2.5,-2.8,2.8);//2
 glVertex3f(2.5,-7.8,2.8);//3
 glVertex3f(-2.5,-7.8,2.8);//4
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(0.0f,0.0f,1.0f);// azul
 glVertex3f(-2.5,-2.8,7.8);//1'
 glVertex3f(2.5,-2.8,7.8);//2'
 glVertex3f(2.5,-7.8,7.8);//3'
 glVertex3f(-2.5,-7.8,7.8);//4'
 glEnd();
    glBegin(GL_POLYGON);//
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(-2.5,-2.8,2.8);//1
 glVertex3f(-2.5,-2.8,7.8);//1'
 glVertex3f(-2.5,-7.8,7.8);//4'
 glVertex3f(-2.5,-7.8,2.8);//4
 glEnd();
 glBegin(GL_POLYGON);//
 glVertex3f(-2.5,-2.8,2.8);//1
 glVertex3f(-2.5,-2.8,7.8);//1'
 glVertex3f(2.5,-2.8,7.8);//2'
 glVertex3f(2.5,-2.8,2.8);//2
 glEnd();
 glBegin(GL_POLYGON);//
 glVertex3f(2.5,-2.8,2.8);//2
 glVertex3f(2.5,-2.8,7.8);//2'
 glVertex3f(2.5,-7.8,7.8);//3'
 glVertex3f(2.5,-7.8,2.8);//3
 glEnd();
 glBegin(GL_POLYGON);//
 glColor3f(1.0f,1.0f,1.0f);//blanco
 glVertex3f(2.5,-7.8,2.8);//3
 glVertex3f(2.5,-7.8,7.8);//3'
 glVertex3f(-2.5,-7.8,7.8);//4'
 glVertex3f(-2.5,-7.8,2.8);//4
 glEnd();

 //abajo derecha
 glBegin(GL_POLYGON);//
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(2.8,-2.8,2.8);//1
 glVertex3f(7.8,-2.8,2.8);//2
 glVertex3f(7.8,-7.8,2.8);//3
 glVertex3f(2.8,-7.8,2.8);//4
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(0.0f,0.0f,1.0f);// azul
 glVertex3f(2.8,-2.8,7.8);//1'
 glVertex3f(7.8,-2.8,7.8);//2'
 glVertex3f(7.8,-7.8,7.8);//3'
 glVertex3f(2.8,-7.8,7.8);//4'
 glEnd();
    glBegin(GL_POLYGON);//
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(2.8,-2.8,2.8);//1
 glVertex3f(2.8,-2.8,7.8);//1'
 glVertex3f(2.8,-7.8,7.8);//4'
 glVertex3f(2.8,-7.8,2.8);//4
 glEnd();
 glBegin(GL_POLYGON);//
 glVertex3f(2.8,-2.8,2.8);//1
 glVertex3f(2.8,-2.8,7.8);//1'
 glVertex3f(7.8,-2.8,7.8);//2'
 glVertex3f(7.8,-2.8,2.8);//2
 glEnd();
 glBegin(GL_POLYGON);//
 glColor3f(1.0f, 0.0f, 0.0f); // rojo
 glVertex3f(7.8,-2.8,2.8);//2
 glVertex3f(7.8,-2.8,7.8);//2'
 glVertex3f(7.8,-7.8,7.8);//3'
 glVertex3f(7.8,-7.8,2.8);//3
 glEnd();
 glBegin(GL_POLYGON);//
 glColor3f(1.0f,1.0f,1.0f);//blanco
 glVertex3f(7.8,-7.8,2.8);//3
 glVertex3f(7.8,-7.8,7.8);//3'
 glVertex3f(2.8,-7.8,7.8);//4'
 glVertex3f(2.8,-7.8,2.8);//4
 glEnd();

 /*=========================================Centro=================================================*/
 //arriba-izq
 glBegin(GL_POLYGON);
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(-7.8,7.8,-2.5);//1
 glVertex3f(-2.8,7.8,-2.5);//2
 glVertex3f(-2.8,2.8,-2.5);//3
 glVertex3f(-7.8,2.8,-2.5);//4
 glEnd();
 glBegin(GL_POLYGON);//
 glVertex3f(-7.8,7.8,2.5);//1'
 glVertex3f(-2.8,7.8,2.5);//2'
 glVertex3f(-2.8,2.8,2.5);//3'
 glVertex3f(-7.8,2.8,2.5);//4'
 glEnd();
    glBegin(GL_POLYGON);
 glColor3f(0.5f, 0.0f, 1.0f); //morado
 glVertex3f(-7.8,7.8,-2.5);//1
 glVertex3f(-7.8,7.8,2.5);//1'
 glVertex3f(-7.8,2.8,2.5);//4'
 glVertex3f(-7.8,2.8,-2.5);//4
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(0.0f, 1.0f, 0.0f); // verde
 glVertex3f(-7.8,7.8,-2.5);//1
 glVertex3f(-7.8,7.8,2.5);//1'
 glVertex3f(-2.8,7.8,2.5);//2'
 glVertex3f(-2.8,7.8,-2.5);//2
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(-2.8,7.8,-2.5);//2
 glVertex3f(-2.8,7.8,2.5);//2'
 glVertex3f(-2.8,2.8,2.5);//3'
 glVertex3f(-2.8,2.8,-2.5);//3
 glEnd();
 glBegin(GL_POLYGON);
 glVertex3f(-2.8,2.8,-2.5);//3
 glVertex3f(-2.8,2.8,2.5);//3'
 glVertex3f(-7.8,2.8,2.5);//4'
 glVertex3f(-7.8,2.8,-2.5);//4
 glEnd();

 //arriba-centro
 glBegin(GL_POLYGON);
 glVertex3f(-2.5,7.8,-2.5);//1
 glVertex3f(2.5,7.8,-2.5);//2
 glVertex3f(2.5,2.8,-2.5);//3
 glVertex3f(-2.5,2.8,-2.5);//4
 glEnd();
 glBegin(GL_POLYGON);//
 glVertex3f(-2.5,7.8,2.5);//1'
 glVertex3f(2.5,7.8,2.5);//2'
 glVertex3f(2.5,2.8,2.5);//3'
 glVertex3f(-2.5,2.8,2.5);//4'
 glEnd();
    glBegin(GL_POLYGON);
 glVertex3f(-2.5,7.8,-2.5);//1
 glVertex3f(-2.5,7.8,2.5);//1'
 glVertex3f(-2.5,2.8,2.5);//4'
 glVertex3f(-2.5,2.8,-2.5);//4
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(0.0f, 1.0f, 0.0f); // verde
 glVertex3f(-2.5,7.8,-2.5);//1
 glVertex3f(-2.5,7.8,2.5);//1'
 glVertex3f(2.5,7.8,2.5);//2'
 glVertex3f(2.5,7.8,-2.5);//2
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(2.5,7.8,-2.5);//2
 glVertex3f(2.5,7.8,2.5);//2'
 glVertex3f(2.5,2.8,2.5);//3'
 glVertex3f(2.5,2.8,-2.5);//3
 glEnd();
 glBegin(GL_POLYGON);
 glVertex3f(2.5,2.8,-2.5);//3
 glVertex3f(2.5,2.8,2.5);//3'
 glVertex3f(-2.5,2.8,2.5);//4'
 glVertex3f(-2.5,2.8,-2.5);//4
 glEnd();

 //arriba derecha
 glBegin(GL_POLYGON);
 glVertex3f(2.8,7.8,-2.5);//1
 glVertex3f(7.8,7.8,-2.5);//2
 glVertex3f(7.8,2.8,-2.5);//3
 glVertex3f(2.8,2.8,-2.5);//4
 glEnd();
 glBegin(GL_POLYGON);//
 glVertex3f(2.8,7.8,2.5);//1'
 glVertex3f(7.8,7.8,2.5);//2'
 glVertex3f(7.8,2.8,2.5);//3'
 glVertex3f(2.8,2.8,2.5);//4'
 glEnd();
    glBegin(GL_POLYGON);
 glVertex3f(2.8,7.8,-2.5);//1
 glVertex3f(2.8,7.8,2.5);//1'
 glVertex3f(2.8,2.8,2.5);//4'
 glVertex3f(2.8,2.8,-2.5);//4
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(0.0f, 1.0f, 0.0f); // verde
 glVertex3f(2.8,7.8,-2.5);//1
 glVertex3f(2.8,7.8,2.5);//1'
 glVertex3f(7.8,7.8,2.5);//2'
 glVertex3f(7.8,7.8,-2.5);//2
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(1.0f, 0.0f, 0.0f); // rojo
 glVertex3f(7.8,7.8,-2.5);//2
 glVertex3f(7.8,7.8,2.5);//2'
 glVertex3f(7.8,2.8,2.5);//3'
 glVertex3f(7.8,2.8,-2.5);//3
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(7.8,2.8,-2.5);//3
 glVertex3f(7.8,2.8,2.5);//3'
 glVertex3f(2.8,2.8,2.5);//4'
 glVertex3f(2.8,2.8,-2.5);//4
 glEnd();

 //centro-izquierda
 glBegin(GL_POLYGON);
 glVertex3f(-7.8,2.5,-2.5);//1
 glVertex3f(-2.8,2.5,-2.5);//2
 glVertex3f(-2.8,-2.5,-2.5);//3
 glVertex3f(-7.8,-2.5,-2.5);//4
 glEnd();
 glBegin(GL_POLYGON);//
 glVertex3f(-7.8,2.5,2.5);//1'
 glVertex3f(-2.8,2.5,2.5);//2'
 glVertex3f(-2.8,-2.5,2.5);//3'
 glVertex3f(-7.8,-2.5,2.5);//4'
 glEnd();
    glBegin(GL_POLYGON);
 glColor3f(0.5f, 0.0f, 1.0f); //morado
 glVertex3f(-7.8,2.5,-2.5);//1
 glVertex3f(-7.8,2.5,2.5);//1'
 glVertex3f(-7.8,-2.5,2.5);//4'
 glVertex3f(-7.8,-2.5,-2.5);//4
    glEnd();
 glBegin(GL_POLYGON);
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(-7.8,2.5,-2.5);//1
 glVertex3f(-7.8,2.5,2.5);//1'
 glVertex3f(-2.8,2.5,2.5);//2'
 glVertex3f(-2.8,2.5,-2.5);//2
 glEnd();
 glBegin(GL_POLYGON);
 glVertex3f(-2.8,2.5,-2.5);//2
 glVertex3f(-2.8,2.5,2.5);//2'
 glVertex3f(-2.8,-2.5,2.5);//3'
 glVertex3f(-2.8,-2.5,-2.5);//3
 glEnd();
 glBegin(GL_POLYGON);
 glVertex3f(-2.8,-2.5,-2.5);//3
 glVertex3f(-2.8,-2.5,2.5);//3'
 glVertex3f(-7.8,-2.5,2.5);//4'
 glVertex3f(-7.8,-2.5,-2.5);//4
 glEnd();

 //centro-centro sincubo

 //centro- derecha
 glBegin(GL_POLYGON);
 glVertex3f(2.8,2.5,-2.5);//1
 glVertex3f(7.8,2.5,-2.5);//2
 glVertex3f(7.8,-2.5,-2.5);//3
 glVertex3f(2.8,-2.5,-2.5);//4
 glEnd();
 glBegin(GL_POLYGON);//
 glVertex3f(2.8,2.5,2.5);//1'
 glVertex3f(7.8,2.5,2.5);//2'
 glVertex3f(7.8,-2.5,2.5);//3'
 glVertex3f(2.8,-2.5,2.5);//4'
 glEnd();
    glBegin(GL_POLYGON);
 glVertex3f(2.8,2.5,-2.5);//1
 glVertex3f(2.8,2.5,2.5);//1'
 glVertex3f(2.8,-2.5,2.5);//4'
 glVertex3f(2.8,-2.5,-2.5);//4
 glEnd();
 glVertex3f(2.8,2.5,-2.5);//1
 glVertex3f(2.8,2.5,2.5);//1'
 glVertex3f(7.8,2.5,2.5);//2'
 glVertex3f(7.8,2.5,-2.5);//2
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(1.0f, 0.0f, 0.0f); // rojo
 glVertex3f(7.8,2.5,-2.5);//2
 glVertex3f(7.8,2.5,2.5);//2'
 glVertex3f(7.8,-2.5,2.5);//3'
 glVertex3f(7.8,-2.5,-2.5);//3
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(7.8,-2.5,-2.5);//3
 glVertex3f(7.8,-2.5,2.5);//3'
 glVertex3f(2.8,-2.5,2.5);//4'
 glVertex3f(2.8,-2.5,-2.5);//4
 glEnd();

 //abajo-izq
 glBegin(GL_POLYGON);
 glVertex3f(-7.8,-2.8,-2.5);//1
 glVertex3f(-2.8,-2.8,-2.5);//2
 glVertex3f(-2.8,-7.8,-2.5);//3
 glVertex3f(-7.8,-7.8,-2.5);//4
 glEnd();
 glBegin(GL_POLYGON);//
 glVertex3f(-7.8,-2.8,2.5);//1'
 glVertex3f(-2.8,-2.8,2.5);//2'
 glVertex3f(-2.8,-7.8,2.5);//3'
 glVertex3f(-7.8,-7.8,2.5);//4'
 glEnd();
    glBegin(GL_POLYGON);
 glColor3f(0.5f, 0.0f, 1.0f); //morado
 glVertex3f(-7.8,-2.8,-2.5);//1
 glVertex3f(-7.8,-2.8,2.5);//1'
 glVertex3f(-7.8,-7.8,2.5);//4'
 glVertex3f(-7.8,-7.8,-2.5);//4
 glEnd();
    glBegin(GL_POLYGON);
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(-7.8,-2.8,-2.5);//1
 glVertex3f(-7.8,-2.8,2.5);//1'
 glVertex3f(-2.8,-2.8,2.5);//2'
 glVertex3f(-2.8,-2.8,-2.5);//2
 glEnd();
 glBegin(GL_POLYGON);
 glVertex3f(-2.8,-2.8,-2.5);//2
 glVertex3f(-2.8,-2.8,2.5);//2'
 glVertex3f(-2.8,-7.8,2.5);//3'
 glVertex3f(-2.8,-7.8,-2.5);//3
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(1.0f,1.0f,1.0f);//blanco
 glVertex3f(-2.8,-7.8,-2.5);//3
 glVertex3f(-2.8,-7.8,2.5);//3'
 glVertex3f(-7.8,-7.8,2.5);//4'
 glVertex3f(-7.8,-7.8,-2.5);//4
 glEnd();

 //abajo-centro
 glBegin(GL_POLYGON);
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(-2.5,-2.8,-2.5);//1
 glVertex3f(2.5,-2.8,-2.5);//2
 glVertex3f(2.5,-7.8,-2.5);//3
 glVertex3f(-2.5,-7.8,-2.5);//4
 glEnd();
 glBegin(GL_POLYGON);//
 glVertex3f(-2.5,-2.8,2.5);//1'
 glVertex3f(2.5,-2.8,2.5);//2'
 glVertex3f(2.5,-7.8,2.5);//3'
 glVertex3f(-2.5,-7.8,2.5);//4'
 glEnd();
    glBegin(GL_POLYGON);
 glVertex3f(-2.5,-2.8,-2.5);//1
 glVertex3f(-2.5,-2.8,2.5);//1'
 glVertex3f(-2.5,-7.8,2.5);//4'
 glVertex3f(-2.5,-7.8,-2.5);//4
 glEnd();
 glBegin(GL_POLYGON);
 glVertex3f(-2.5,-2.8,-2.5);//1
 glVertex3f(-2.5,-2.8,2.5);//1'
 glVertex3f(2.5,-2.8,2.5);//2'
 glVertex3f(2.5,-2.8,-2.5);//2
 glEnd();
 glBegin(GL_POLYGON);
 glVertex3f(2.5,-2.8,-2.5);//2
 glVertex3f(2.5,-2.8,2.5);//2'
 glVertex3f(2.5,-7.8,2.5);//3'
 glVertex3f(2.5,-7.8,-2.5);//3
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(1.0f,1.0f,1.0f);//blanco
 glVertex3f(2.5,-7.8,-2.5);//3
 glVertex3f(2.5,-7.8,2.5);//3'
 glVertex3f(-2.5,-7.8,2.5);//4'
 glVertex3f(-2.5,-7.8,-2.5);//4
 glEnd();

 //abajo derecha
 glBegin(GL_POLYGON);
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(2.8,-2.8,-2.5);//1
 glVertex3f(7.8,-2.8,-2.5);//2
 glVertex3f(7.8,-7.8,-2.5);//3
 glVertex3f(2.8,-7.8,-2.5);//4
 glEnd();
 glBegin(GL_POLYGON);//
 glVertex3f(2.8,-2.8,2.5);//1'
 glVertex3f(7.8,-2.8,2.5);//2'
 glVertex3f(7.8,-7.8,2.5);//3'
 glVertex3f(2.8,-7.8,2.5);//4'
 glEnd();
 glBegin(GL_POLYGON);
 glVertex3f(2.8,-2.8,-2.5);//1
 glVertex3f(2.8,-2.8,2.5);//1'
 glVertex3f(2.8,-7.8,2.5);//4'
 glVertex3f(2.8,-7.8,-2.5);//4
 glEnd();
 glBegin(GL_POLYGON);
 glVertex3f(2.8,-2.8,-2.5);//1
 glVertex3f(2.8,-2.8,2.5);//1'
 glVertex3f(7.8,-2.8,2.5);//2'
 glVertex3f(7.8,-2.8,-2.5);//2
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(1.0f, 0.0f, 0.0f); // rojo
 glVertex3f(7.8,-2.8,-2.5);//2
 glVertex3f(7.8,-2.8,2.5);//2'
 glVertex3f(7.8,-7.8,2.5);//3'
 glVertex3f(7.8,-7.8,-2.5);//3
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(1.0f,1.0f,1.0f);//blanco
 glVertex3f(7.8,-7.8,-2.5);//3
 glVertex3f(7.8,-7.8,2.5);//3'
 glVertex3f(2.8,-7.8,2.5);//4'
 glVertex3f(2.8,-7.8,-2.5);//4
 glEnd();

 /*=============================================frente========================================*/
 //arriba-izq
 glBegin(GL_POLYGON);
    glColor3f(1.0f, 1.0f, 0.0f); // amarillo
 glVertex3f(-7.8,7.8,-7.8);//1
 glVertex3f(-2.8,7.8,-7.8);//2
 glVertex3f(-2.8,2.8,-7.8);//3
 glVertex3f(-7.8,2.8,-7.8);//4
 glEnd();
 glBegin(GL_POLYGON);//
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(-7.8,7.8,-2.8);//1'
 glVertex3f(-2.8,7.8,-2.8);//2'
 glVertex3f(-2.8,2.8,-2.8);//3'
 glVertex3f(-7.8,2.8,-2.8);//4'
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(0.5f, 0.0f, 1.0f); //morado
 glVertex3f(-7.8,7.8,-7.8);//1
 glVertex3f(-7.8,7.8,-2.8);//1'
 glVertex3f(-7.8,2.8,-2.8);//4'
 glVertex3f(-7.8,2.8,-7.8);//4
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(0.0f, 1.0f, 0.0f); // verde
 glVertex3f(-7.8,7.8,-7.8);//1
 glVertex3f(-7.8,7.8,-2.8);//1'
 glVertex3f(-2.8,7.8,-2.8);//2'
 glVertex3f(-2.8,7.8,-7.8);//2
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(-2.8,7.8,-7.8);//2
 glVertex3f(-2.8,7.8,-2.8);//2'
 glVertex3f(-2.8,2.8,-2.8);//3'
 glVertex3f(-2.8,2.8,-7.8);//3
 glEnd();
 glBegin(GL_POLYGON);
 glVertex3f(-2.8,2.8,-7.8);//3
 glVertex3f(-2.8,2.8,-2.8);//3'
 glVertex3f(-7.8,2.8,-2.8);//4'
 glVertex3f(-7.8,2.8,-7.8);//4
 glEnd();

 //arriba-centro
 glBegin(GL_POLYGON);
 glColor3f(1.0f, 1.0f, 0.0f); // amarillo
 glVertex3f(-2.5,7.8,-7.8);//1
 glVertex3f(2.5,7.8,-7.8);//2
 glVertex3f(2.5,2.8,-7.8);//3
 glVertex3f(-2.5,2.8,-7.8);//4
 glEnd();
 glBegin(GL_POLYGON);//
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(-2.5,7.8,-2.8);//1'
 glVertex3f(2.5,7.8,-2.8);//2'
 glVertex3f(2.5,2.8,-2.8);//3'
 glVertex3f(-2.5,2.8,-2.8);//4'
 glEnd();
 glBegin(GL_POLYGON);
 glVertex3f(-2.5,7.8,-7.8);//1
 glVertex3f(-2.5,7.8,-2.8);//1'
 glVertex3f(-2.5,2.8,-2.8);//4'
 glVertex3f(-2.5,2.8,-7.8);//4
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(0.0f, 1.0f, 0.0f); // verde
 glVertex3f(-2.5,7.8,-7.8);//1
 glVertex3f(-2.5,7.8,-2.8);//1'
 glVertex3f(2.5,7.8,-2.8);//2'
 glVertex3f(2.5,7.8,-7.8);//2
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(2.5,7.8,-7.8);//2
 glVertex3f(2.5,7.8,-2.8);//2'
 glVertex3f(2.5,2.8,-2.8);//3'
 glVertex3f(2.5,2.8,-7.8);//3
 glEnd();
 glBegin(GL_POLYGON);
 glVertex3f(2.5,2.8,-7.8);//3
 glVertex3f(2.5,2.8,-2.8);//3'
 glVertex3f(-2.5,2.8,-2.8);//4'
 glVertex3f(-2.5,2.8,-7.8);//4
 glEnd();

 //arriba-derecha
 glBegin(GL_POLYGON);
 glColor3f(1.0f, 1.0f, 0.0f); // amarillo
 glVertex3f(2.8,7.8,-7.8);//1
 glVertex3f(7.8,7.8,-7.8);//2
 glVertex3f(7.8,2.8,-7.8);//3
 glVertex3f(2.8,2.8,-7.8);//4
 glEnd();
 glBegin(GL_POLYGON);//
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(2.8,7.8,-2.8);//1'
 glVertex3f(7.8,7.8,-2.8);//2'
 glVertex3f(7.8,2.8,-2.8);//3'
 glVertex3f(2.8,2.8,-2.8);//4'
 glEnd();
 glBegin(GL_POLYGON);
 glVertex3f(2.8,7.8,-7.8);//1
 glVertex3f(2.8,7.8,-2.8);//1'
 glVertex3f(2.8,2.8,-2.8);//4'
 glVertex3f(2.8,2.8,-7.8);//4
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(0.0f, 1.0f, 0.0f); // verde
 glVertex3f(2.8,7.8,-7.8);//1
 glVertex3f(2.8,7.8,-2.8);//1'
 glVertex3f(7.8,7.8,-2.8);//2'
 glVertex3f(7.8,7.8,-7.8);//2
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(1.0f, 0.0f, 0.0f); // rojo
 glVertex3f(7.8,7.8,-7.8);//2
 glVertex3f(7.8,7.8,-2.8);//2'
 glVertex3f(7.8,2.8,-2.8);//3'
 glVertex3f(7.8,2.8,-7.8);//3
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(7.8,2.8,-7.8);//3
 glVertex3f(7.8,2.8,-2.8);//3'
 glVertex3f(2.8,2.8,-2.8);//4'
 glVertex3f(2.8,2.8,-7.8);//4
 glEnd();

 //centro-izquierda
 glBegin(GL_POLYGON);
    glColor3f(1.0f, 1.0f, 0.0f); // amarillo
 glVertex3f(-7.8,2.5,-7.8);//1
 glVertex3f(-2.8,2.5,-7.8);//2
 glVertex3f(-2.8,-2.5,-7.8);//3
 glVertex3f(-7.8,-2.5,-7.8);//4
 glEnd();
 glBegin(GL_POLYGON);//
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(-7.8,2.5,-2.8);//1'
 glVertex3f(-2.8,2.5,-2.8);//2'
 glVertex3f(-2.8,-2.5,-2.8);//3'
 glVertex3f(-7.8,-2.5,-2.8);//4'
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(0.5f, 0.0f, 1.0f); //morado
 glVertex3f(-7.8,2.5,-7.8);//1
 glVertex3f(-7.8,2.5,-2.8);//1'
 glVertex3f(-7.8,-2.5,-2.8);//4'
 glVertex3f(-7.8,-2.5,-7.8);//4
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(-7.8,2.5,-7.8);//1
 glVertex3f(-7.8,2.5,-2.8);//1'
 glVertex3f(-2.8,2.5,-2.8);//2'
 glVertex3f(-2.8,2.5,-7.8);//2
 glEnd();
 glBegin(GL_POLYGON);
 glVertex3f(-2.8,2.5,-7.8);//2
 glVertex3f(-2.8,2.5,-2.8);//2'
 glVertex3f(-2.8,-2.5,-2.8);//3'
 glVertex3f(-2.8,-2.5,-7.8);//3
 glEnd();
 glBegin(GL_POLYGON);
 glVertex3f(-2.8,-2.5,-7.8);//3
 glVertex3f(-2.8,-2.5,-2.8);//3'
 glVertex3f(-7.8,-2.5,-2.8);//4'
 glVertex3f(-7.8,-2.5,-7.8);//4
 glEnd();

 //centro-centro
 glBegin(GL_POLYGON);
 glColor3f(1.0f, 1.0f, 0.0f); // amarillo
 glVertex3f(-2.5,2.5,-7.8);//1
 glVertex3f(2.5,2.5,-7.8);//2
 glVertex3f(2.5,-2.5,-7.8);//3
 glVertex3f(-2.5,-2.5,-7.8);//4
 glEnd();
 glBegin(GL_POLYGON);//
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(-2.5,2.5,-2.8);//1'
 glVertex3f(2.5,2.5,-2.8);//2'
 glVertex3f(2.5,-2.5,-2.8);//3'
 glVertex3f(-2.5,-2.5,-2.8);//4'
 glEnd();
 glBegin(GL_POLYGON);
 glVertex3f(-2.5,2.5,-7.8);//1
 glVertex3f(-2.5,2.5,-2.8);//1'
 glVertex3f(-2.5,-2.5,-2.8);//4'
 glVertex3f(-2.5,-2.5,-7.8);//4
 glEnd();
 glBegin(GL_POLYGON);
 glVertex3f(-2.5,2.5,-7.8);//1
 glVertex3f(-2.5,2.5,-2.8);//1'
 glVertex3f(2.5,2.5,-2.8);//2'
 glVertex3f(2.5,2.5,-7.8);//2
 glEnd();
 glBegin(GL_POLYGON);
 glVertex3f(2.5,2.5,-7.8);//2
 glVertex3f(2.5,2.5,-2.8);//2'
 glVertex3f(2.5,-2.5,-2.8);//3'
 glVertex3f(2.5,-2.5,-7.8);//3
 glEnd();
 glBegin(GL_POLYGON);
 glVertex3f(2.5,-2.5,-7.8);//3
 glVertex3f(2.5,-2.5,-2.8);//3'
 glVertex3f(-2.5,-2.5,-2.8);//4'
 glVertex3f(-2.5,-2.5,-7.8);//4
 glEnd();

 //centro-derecha
 glBegin(GL_POLYGON);
 glColor3f(1.0f, 1.0f, 0.0f); // amarillo
 glVertex3f(2.8,2.5,-7.8);//1
 glVertex3f(7.8,2.5,-7.8);//2
 glVertex3f(7.8,-2.5,-7.8);//3
 glVertex3f(2.8,-2.5,-7.8);//4
 glEnd();
 glBegin(GL_POLYGON);//
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(2.8,2.5,-2.8);//1'
 glVertex3f(7.8,2.5,-2.8);//2'
 glVertex3f(7.8,-2.5,-2.8);//3'
 glVertex3f(2.8,-2.5,-2.8);//4'
 glEnd();
 glBegin(GL_POLYGON);
 glVertex3f(2.8,2.5,-7.8);//1
 glVertex3f(2.8,2.5,-2.8);//1'
 glVertex3f(2.8,-2.5,-2.8);//4'
 glVertex3f(2.8,-2.5,-7.8);//4
 glEnd();
 glBegin(GL_POLYGON);
 glVertex3f(2.8,2.5,-7.8);//1
 glVertex3f(2.8,2.5,-2.8);//1'
 glVertex3f(7.8,2.5,-2.8);//2'
 glVertex3f(7.8,2.5,-7.8);//2
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(1.0f, 0.0f, 0.0f); // rojo
 glVertex3f(7.8,2.5,-7.8);//2
 glVertex3f(7.8,2.5,-2.8);//2'
 glVertex3f(7.8,-2.5,-2.8);//3'
 glVertex3f(7.8,-2.5,-7.8);//3
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(7.8,-2.5,-7.8);//3
 glVertex3f(7.8,-2.5,-2.8);//3'
 glVertex3f(2.8,-2.5,-2.8);//4'
 glVertex3f(2.8,-2.5,-7.8);//4
 glEnd();

 //abajo izq
 glBegin(GL_POLYGON);
 glColor3f(1.0f, 1.0f, 0.0f); // amarillo
 glVertex3f(-7.8,-2.8,-7.8);//1
 glVertex3f(-2.8,-2.8,-7.8);//2
 glVertex3f(-2.8,-7.8,-7.8);//3
 glVertex3f(-7.8,-7.8,-7.8);//4
 glEnd();
 glBegin(GL_POLYGON);//
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(-7.8,-2.8,-2.8);//1'
 glVertex3f(-2.8,-2.8,-2.8);//2'
 glVertex3f(-2.8,-7.8,-2.8);//3'
 glVertex3f(-7.8,-7.8,-2.8);//4'
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(0.5f, 0.0f, 1.0f); //morado
 glVertex3f(-7.8,-2.8,-7.8);//1
 glVertex3f(-7.8,-2.8,-2.8);//1'
 glVertex3f(-7.8,-7.8,-2.8);//4'
 glVertex3f(-7.8,-7.8,-7.8);//4
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(-7.8,-2.8,-7.8);//1
 glVertex3f(-7.8,-2.8,-2.8);//1'
 glVertex3f(-2.8,-2.8,-2.8);//2'
 glVertex3f(-2.8,-2.8,-7.8);//2
 glEnd();
 glBegin(GL_POLYGON);
 glVertex3f(-2.8,-2.8,-7.8);//2
 glVertex3f(-2.8,-2.8,-2.8);//2'
 glVertex3f(-2.8,-7.8,-2.8);//3'
 glVertex3f(-2.8,-7.8,-7.8);//3
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(1.0f,1.0f,1.0f);//blanco
 glVertex3f(-2.8,-7.8,-7.8);//3
 glVertex3f(-2.8,-7.8,-2.8);//3'
 glVertex3f(-7.8,-7.8,-2.8);//4'
 glVertex3f(-7.8,-7.8,-7.8);//4
 glEnd();

 //abajo-centro
 glBegin(GL_POLYGON);
 glColor3f(1.0f, 1.0f, 0.0f); // amarillo
 glVertex3f(-2.5,-2.8,-7.8);//1
 glVertex3f(2.5,-2.8,-7.8);//2
 glVertex3f(2.5,-7.8,-7.8);//3
 glVertex3f(-2.5,-7.8,-7.8);//4
 glEnd();
 glBegin(GL_POLYGON);//
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(-2.5,-2.8,-2.8);//1'
 glVertex3f(2.5,-2.8,-2.8);//2'
 glVertex3f(2.5,-7.8,-2.8);//3'
 glVertex3f(-2.5,-7.8,-2.8);//4'
 glEnd();
 glBegin(GL_POLYGON);
 glVertex3f(-2.5,-2.8,-7.8);//1
 glVertex3f(-2.5,-2.8,-2.8);//1'
 glVertex3f(-2.5,-7.8,-2.8);//4'
 glVertex3f(-2.5,-7.8,-7.8);//4
 glEnd();
 glBegin(GL_POLYGON);
 glVertex3f(-2.5,-2.8,-7.8);//1
 glVertex3f(-2.5,-2.8,-2.8);//1'
 glVertex3f(2.5,-2.8,-2.8);//2'
 glVertex3f(2.5,-2.8,-7.8);//2
 glEnd();
 glBegin(GL_POLYGON);
 glVertex3f(2.5,-2.8,-7.8);//2
 glVertex3f(2.5,-2.8,-2.8);//2'
 glVertex3f(2.5,-7.8,-2.8);//3'
 glVertex3f(2.5,-7.8,-7.8);//3
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(1.0f,1.0f,1.0f);//blanco
 glVertex3f(2.5,-7.8,-7.8);//3
 glVertex3f(2.5,-7.8,-2.8);//3'
 glVertex3f(-2.5,-7.8,-2.8);//4'
 glVertex3f(-2.5,-7.8,-7.8);//4
 glEnd();

 //abajo-derecha
 glBegin(GL_POLYGON);
 glColor3f(1.0f, 1.0f, 0.0f); // amarillo
 glVertex3f(2.8,-2.8,-7.8);//1
 glVertex3f(7.8,-2.8,-7.8);//2
 glVertex3f(7.8,-7.8,-7.8);//3
 glVertex3f(2.8,-7.8,-7.8);//4
 glEnd();
 glBegin(GL_POLYGON);//
 glColor3f(0.0f,0.0f,0.0f);//negro
 glVertex3f(2.8,-2.8,-2.8);//1'
 glVertex3f(7.8,-2.8,-2.8);//2'
 glVertex3f(7.8,-7.8,-2.8);//3'
 glVertex3f(2.8,-7.8,-2.8);//4'
 glEnd();
 glBegin(GL_POLYGON);
 glVertex3f(2.8,-2.8,-7.8);//1
 glVertex3f(2.8,-2.8,-2.8);//1'
 glVertex3f(2.8,-7.8,-2.8);//4'
 glVertex3f(2.8,-7.8,-7.8);//4
 glEnd();
 glBegin(GL_POLYGON);
 glVertex3f(2.8,-2.8,-7.8);//1
 glVertex3f(2.8,-2.8,-2.8);//1'
 glVertex3f(7.8,-2.8,-2.8);//2'
 glVertex3f(7.8,-2.8,-7.8);//2
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(1.0f, 0.0f, 0.0f); // rojo
 glVertex3f(7.8,-2.8,-7.8);//2
 glVertex3f(7.8,-2.8,-2.8);//2'
 glVertex3f(7.8,-7.8,-2.8);//3'
 glVertex3f(7.8,-7.8,-7.8);//3
 glEnd();
 glBegin(GL_POLYGON);
 glColor3f(1.0f,1.0f,1.0f);//blanco
 glVertex3f(7.8,-7.8,-7.8);//3
 glVertex3f(7.8,-7.8,-2.8);//3'
 glVertex3f(2.8,-7.8,-2.8);//4'
 glVertex3f(2.8,-7.8,-7.8);//4
 glEnd();

}

void display()/*Aquí se define el primer callback. La función pasada como parámetro será llamada cada vez que GLUT determine oportuno que la ventana debe ser redibujada, como al maximizarse, poner otras ventanas por encima y después quitarlas, etc.*/
{

 glClear(GL_COLOR_BUFFER_BIT| GL_DEPTH_BUFFER_BIT);
 glLoadIdentity();
 glRotatef(angulox, 1.0f, 0.0f, 0.0f);//rotar en x
 glRotatef(anguloy, 0.0f, 1.0f, 0.0f);//rotar en y
 cubos();
 glFlush();/*vacía todos los comandos en estos buffers y las fuerzas de todos los comandos pendientes voluntad de ser ejecutadas inmediatamente y sin topes de espera están llenas.*/
 glutSwapBuffers();/*promueve el contenido de la memoria intermedia posterior de la capa en el uso de la ventana actual para convertirse en el contenido del búfer frontal. */

}
void init()
{
    glClearColor(0,0,0,0);
    glEnable(GL_DEPTH_TEST);// tapa las lineas que estan debajo de ellas
}

void idle()
{
    display();
}

void ArrowKey(int key, int x, int y){ //funcion para trasladar en -x,x,-y,y

switch (key){
case GLUT_KEY_RIGHT:
  angulox+=1.65f;
break;

case GLUT_KEY_LEFT:
 angulox-=1.65f;
break;

case GLUT_KEY_UP:
 anguloy+=1.65f;
 break;

case GLUT_KEY_DOWN:
  anguloy-=1.65f;
break;
}
}
void keyboard(unsigned char key, int x, int y)
{
switch (key) {
case 27:
exit(0);
break;
}
}
int main(int argc, char **argv) //Funcion para crear ventana
{
 glutInit(&argc, argv);
 glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);/*GLUT_DOUBLE para que glutSwapBuffers() tenga efecto, CON GLUT_SINGLE no hay efecto;GLUT_SINGLE para que glFlush() tenga efecto  */
 glutInitWindowPosition(500,60);//Posicion de la ventana
 glutInitWindowSize(alto,ancho);//tamaño de la ventana
 glutCreateWindow("Cubo de Rubik");//Mensaje de la ventana
 init();/*activa, define una serie de estados de ogl, antes de pasar el control del programa a la GLUT.*/
 glutDisplayFunc(display);
 glutReshapeFunc(reshape);
 glutIdleFunc(idle);
 glutKeyboardFunc(keyboard);
 glutSpecialFunc(ArrowKey);
 glutMainLoop();
}

lunes, 14 de octubre de 2013

Actividad #6 Unidad III Publicar sobre "Investigación de Disney sobre display tactil 3d"

Actividad #6 
Investigación de Disney sobre display tactil 3d.

Una persona deslizando un dedo sobre un mapa topográfico en una pantalla táctil puede sentir los baches y las curvas de las colinas y valles, a pesar de la superficie lisa de la pantalla, con la ayuda de un nuevo algoritmo creado por Disney Research, Pittsburgh para la representación táctil de funciones 3D y texturas.
Al alterar la fricción encontrada en forma de deslizamiento punta de los dedos de una persona a través de una superficie, el algoritmo de Disney puede crear una percepción de un bache en 3D en una superficie táctil sin tener que desplazarse físicamente a la superficie. El método puede ser utilizado para simular la sensación de una amplia variedad de objetos y texturas.
El algoritmo se basa en un descubrimiento de que cuando una persona se desliza un dedo sobre un verdadero golpe físico, la persona percibe la protuberancia en gran medida debido a la fricción lateral de las fuerzas de estiramiento y comprimir la piel en el dedo deslizante.
"Nuestro cerebro percibe el golpe 3D en una superficie mayor parte de la información que recibe a través de estiramiento de la piel", dijo Ivan Poupyrev, que dirige Disney Research, Grupo de Interacción de Pittsburgh. "Por lo tanto, si podemos extender artificialmente la piel en un dedo mientras se desliza en la pantalla táctil, el cerebro se deje engañar en pensar un golpe físico real es en una pantalla táctil a pesar de que la superficie de contacto es completamente lisa."
Disney Research, investigadores de Pittsburgh presentarán sus hallazgos en el Simposio ACM de software de interfaz de usuario y la Tecnología, octubre 8-11, en St Andrews, Escocia.
En sus experimentos, los investigadores utilizaron Disney electrovibración para modular la fricción entre el dedo deslizante y la superficie táctil con fuerzas electrostáticas. Los investigadores crearon y validaron un modelo psico-físico que simula estrechamente las fuerzas de fricción que percibe el dedo humano cuando se desliza por un bache real.
El modelo se incorpora a continuación en un algoritmo que modula dinámicamente las fuerzas de fricción sobre un dedo deslizante, de modo que coincidan con las propiedades táctiles del contenido visual mostrada en la pantalla táctil a lo largo de la trayectoria del dedo. Una amplia variedad de artefactos visuales por lo tanto se puede mejorar de forma dinámica con retroalimentación táctil que se ajusta a medida los cambios de presentación visual.
"El enfoque tradicional de la retroalimentación táctil es tener una biblioteca de efectos fijos que se reproducen cada vez que se produce una interacción particular", dijo Ali Israr, una investigación Disney, ingeniero Pittsburgh investigación que fue el líder de investigación en el proyecto. "Esto hace que sea difícil crear una retroalimentación táctil para el contenido visual dinámico, donde el tamaño y la orientación de las funciones cambian constantemente. Con nuestro algoritmo no tenemos uno o dos efectos, sino un conjunto de controles que permitan ajustar los efectos táctiles a un artefacto visual específica sobre la marcha ".
"La interacción táctil se ha convertido en el estándar para los teléfonos inteligentes, tabletas y computadoras de escritorio, incluso, para el diseño de algoritmos que pueden convertir el contenido visual en sensaciones táctiles creíbles tiene un inmenso potencial para enriquecer la experiencia del usuario", dijo Poupyrev. "Creemos que nuestro algoritmo permitirá rico rinda información táctil sobre el contenido visual y que esto dará lugar a nuevas aplicaciones para pantallas táctiles."

Actividad #5 Unidad III Cubo de rubik - Programa



Actividad #5 Cubo de rubik

cubo rubik usando opengl
generar cada cubo con sus caras,
hacerlo girar sobre 'X' y 'Y' teniendo como centro de giro el centro del cubo.
  • Codigo-OpenGL

// cubo_derubik.cpp: define el punto de entrada de la aplicación de consola.
//
#include "stdafx.h"
#include <stdlib.h>
#include <GL/glut.h>

GLfloat angulox = 0.0f; // variable para el angulo x
GLfloat anguloy = 0.0f; // variable para el angulo y


void reshape(int width, int height)/*Esta acción afecta en principio directamente al render, puesto que se está cambiando el tamaño del plano de proyección.*/
{
 glViewport(0,0,width,height);
 glMatrixMode(GL_PROJECTION); 
 glLoadIdentity();
 glOrtho(-120,120,-60,60,-70,70);/*define la proyección definida por los ejes x,y,z. Estos parámetros demilitan el volumen de vista y son, por este orden: x_mínima, x_máxima, y_mínima, y_máxima, z_mínima, z_máxima,*/
 glMatrixMode(GL_MODELVIEW);

}

void cubos(void)
{
/*==============================================================Atrás==========================================================*/
//arriba-derecha//sincolor
glBegin(GL_POLYGON);
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(-7.8,7.8,2.8);//1
glVertex3f(-2.8,7.8,2.8);//2
glVertex3f(-2.8,2.8,2.8);//3
glVertex3f(-7.8,2.8,2.8);//4
glEnd();
glBegin(GL_POLYGON);
glColor3f(0.0f,0.0f,1.0f);// azul
glVertex3f(-7.8,7.8,7.8);//1'
glVertex3f(-2.8,7.8,7.8);//2'
glVertex3f(-2.8,2.8,7.8);//3'
glVertex3f(-7.8,2.8,7.8);//4'
glEnd();
    glBegin(GL_POLYGON);
glColor3f(0.5f, 0.0f, 1.0f); //morado
glVertex3f(-7.8,7.8,2.8);//1
glVertex3f(-7.8,7.8,7.8);//1'
glVertex3f(-7.8,2.8,7.8);//4'
glVertex3f(-7.8,2.8,2.8);//4
glEnd();
glBegin(GL_POLYGON);
glColor3f(0.0f, 1.0f, 0.0f); // verde
glVertex3f(-7.8,7.8,2.8);//1
glVertex3f(-7.8,7.8,7.8);//1'
glVertex3f(-2.8,7.8,7.8);//2'
glVertex3f(-2.8,7.8,2.8);//2
glEnd();
glBegin(GL_POLYGON);
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(-2.8,7.8,2.8);//2
glVertex3f(-2.8,7.8,7.8);//2'
glVertex3f(-2.8,2.8,7.8);//3'
glVertex3f(-2.8,2.8,2.8);//3
glEnd();
glBegin(GL_POLYGON);
glVertex3f(-2.8,2.8,2.8);//3
glVertex3f(-2.8,2.8,7.8);//3'
glVertex3f(-7.8,2.8,7.8);//4'
glVertex3f(-7.8,2.8,2.8);//4
glEnd();

//arriba-centro
glBegin(GL_POLYGON);//
glVertex3f(-2.5,7.8,2.8);//1
glVertex3f(2.5,7.8,2.8);//2
glVertex3f(2.5,2.8,2.8);//3
glVertex3f(-2.5,2.8,2.8);//4
glEnd();
glBegin(GL_POLYGON);
glColor3f(0.0f,0.0f,1.0f);// azul
glVertex3f(-2.5,7.8,7.8);//1'
glVertex3f(2.5,7.8,7.8);//2'
glVertex3f(2.5,2.8,7.8);//3'
glVertex3f(-2.5,2.8,7.8);//4'
glEnd();
    glBegin(GL_POLYGON);//
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(-2.5,7.8,2.8);//1
glVertex3f(-2.5,7.8,7.8);//1'
glVertex3f(-2.5,2.8,7.8);//4'
glVertex3f(-2.5,2.8,2.8);//4
glEnd();
glBegin(GL_POLYGON);//
glColor3f(0.0f, 1.0f, 0.0f); // verde
glVertex3f(-2.5,7.8,2.8);//1
glVertex3f(-2.5,7.8,7.8);//1'
glVertex3f(2.5,7.8,7.8);//2'
glVertex3f(2.5,7.8,2.8);//2
glEnd();
glBegin(GL_POLYGON);//
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(2.5,7.8,2.8);//2
glVertex3f(2.5,7.8,7.8);//2'
glVertex3f(2.5,2.8,7.8);//3'
glVertex3f(2.5,2.8,2.8);//3
glEnd();
glBegin(GL_POLYGON);//
glVertex3f(2.5,2.8,2.8);//3
glVertex3f(2.5,2.8,7.8);//3'
glVertex3f(-2.5,2.8,7.8);//4'
glVertex3f(-2.5,2.8,2.8);//4
glEnd();

//arriba derecha
glBegin(GL_POLYGON);//
glVertex3f(2.8,7.8,2.8);//1
glVertex3f(7.8,7.8,2.8);//2
glVertex3f(7.8,2.8,2.8);//3
glVertex3f(2.8,2.8,2.8);//4
glEnd();
glBegin(GL_POLYGON);
glColor3f(0.0f,0.0f,1.0f);// azul
glVertex3f(2.8,7.8,7.8);//1'
glVertex3f(7.8,7.8,7.8);//2'
glVertex3f(7.8,2.8,7.8);//3'
glVertex3f(2.8,2.8,7.8);//4'
glEnd();
    glBegin(GL_POLYGON);//
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(2.8,7.8,2.8);//1
glVertex3f(2.8,7.8,7.8);//1'
glVertex3f(2.8,2.8,7.8);//4'
glVertex3f(2.8,2.8,2.8);//4
glEnd();
glBegin(GL_POLYGON);//
glColor3f(0.0f, 1.0f, 0.0f); // verde
glVertex3f(2.8,7.8,2.8);//1
glVertex3f(2.8,7.8,7.8);//1'
glVertex3f(7.8,7.8,7.8);//2'
glVertex3f(7.8,7.8,2.8);//2
glEnd();
glBegin(GL_POLYGON);//
glColor3f(1.0f, 0.0f, 0.0f); // rojo
glVertex3f(7.8,7.8,2.8);//2
glVertex3f(7.8,7.8,7.8);//2'
glVertex3f(7.8,2.8,7.8);//3'
glVertex3f(7.8,2.8,2.8);//3
glEnd();
glBegin(GL_POLYGON);//
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(7.8,2.8,2.8);//3
glVertex3f(7.8,2.8,7.8);//3'
glVertex3f(2.8,2.8,7.8);//4'
glVertex3f(2.8,2.8,2.8);//4
glEnd();

//centro - izquierda
glBegin(GL_POLYGON);//
glVertex3f(-7.8,2.5,2.8);//1
glVertex3f(-2.8,2.5,2.8);//2
glVertex3f(-2.8,-2.5,2.8);//3
glVertex3f(-7.8,-2.5,2.8);//4
glEnd();
glBegin(GL_POLYGON);
glColor3f(0.0f,0.0f,1.0f);// azul
glVertex3f(-7.8,2.5,7.8);//1'
glVertex3f(-2.8,2.5,7.8);//2'
glVertex3f(-2.8,-2.5,7.8);//3'
glVertex3f(-7.8,-2.5,7.8);//4'
glEnd();
    glBegin(GL_POLYGON);//
glColor3f(0.5f, 0.0f, 1.0f); //morado
glVertex3f(-7.8,2.5,2.8);//1
glVertex3f(-7.8,2.5,7.8);//1'
glVertex3f(-7.8,-2.5,7.8);//4'
glVertex3f(-7.8,-2.5,2.8);//4
glEnd();
glBegin(GL_POLYGON);//
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(-7.8,2.5,2.8);//1
glVertex3f(-7.8,2.5,7.8);//1'
glVertex3f(-2.8,2.5,7.8);//2'
glVertex3f(-2.8,2.5,2.8);//2
glEnd();
glBegin(GL_POLYGON);//
glVertex3f(-2.8,2.5,2.8);//2
glVertex3f(-2.8,2.5,7.8);//2'
glVertex3f(-2.8,-2.5,7.8);//3'
glVertex3f(-2.8,-2.5,2.8);//3
glEnd();
glBegin(GL_POLYGON);//
glVertex3f(-2.8,-2.5,2.8);//3
glVertex3f(-2.8,-2.5,7.8);//3'
glVertex3f(-7.8,-2.5,7.8);//4'
glVertex3f(-7.8,-2.5,2.8);//4
glEnd();
//centro centro
glBegin(GL_POLYGON);//
glVertex3f(-2.5,2.5,2.8);//1
glVertex3f(2.5,2.5,2.8);//2
glVertex3f(2.5,-2.5,2.8);//3
glVertex3f(-2.5,-2.5,2.8);//4
glEnd();
glBegin(GL_POLYGON);
glColor3f(0.0f,0.0f,1.0f);// azul
glVertex3f(-2.5,2.5,7.8);//1'
glVertex3f(2.5,2.5,7.8);//2'
glVertex3f(2.5,-2.5,7.8);//3'
glVertex3f(-2.5,-2.5,7.8);//4'
glEnd();
glBegin(GL_POLYGON);//
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(-2.5,2.5,2.8);//1
glVertex3f(-2.5,2.5,7.8);//1'
glVertex3f(-2.5,-2.5,7.8);//4'
glVertex3f(-2.5,-2.5,2.8);//4
glEnd();
glBegin(GL_POLYGON);//
glVertex3f(-2.5,2.5,2.8);//1
glVertex3f(-2.5,2.5,7.8);//1'
glVertex3f(2.5,2.5,7.8);//2'
glVertex3f(2.5,2.5,2.8);//2
glEnd();
glBegin(GL_POLYGON);//
glVertex3f(2.5,2.5,2.8);//2
glVertex3f(2.5,2.5,7.8);//2'
glVertex3f(2.5,-2.5,7.8);//3'
glVertex3f(2.5,-2.5,2.8);//3
glEnd();
glBegin(GL_POLYGON);//
glVertex3f(2.5,-2.5,2.8);//3
glVertex3f(2.5,-2.5,7.8);//3'
glVertex3f(-2.5,-2.5,7.8);//4'
glVertex3f(-2.5,-2.5,2.8);//4
glEnd();
//centro-derecha
glBegin(GL_POLYGON);//
glVertex3f(2.8,2.5,2.8);//1
glVertex3f(7.8,2.5,2.8);//2
glVertex3f(7.8,-2.5,2.8);//3
glVertex3f(2.8,-2.5,2.8);//4
glEnd();
glBegin(GL_POLYGON);
glColor3f(0.0f,0.0f,1.0f);// azul
glVertex3f(2.8,2.5,7.8);//1'
glVertex3f(7.8,2.5,7.8);//2'
glVertex3f(7.8,-2.5,7.8);//3'
glVertex3f(2.8,-2.5,7.8);//4'
glEnd();
    glBegin(GL_POLYGON);//
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(2.8,2.5,2.8);//1
glVertex3f(2.8,2.5,7.8);//1'
glVertex3f(2.8,-2.5,7.8);//4'
glVertex3f(2.8,-2.5,2.8);//4
glEnd();
glBegin(GL_POLYGON);//
glVertex3f(2.8,2.5,2.8);//1
glVertex3f(2.8,2.5,7.8);//1'
glVertex3f(7.8,2.5,7.8);//2'
glVertex3f(7.8,2.5,2.8);//2
glEnd();
glBegin(GL_POLYGON);//
    glColor3f(1.0f, 0.0f, 0.0f); // rojo
glVertex3f(7.8,2.5,2.8);//2
glVertex3f(7.8,2.5,7.8);//2'
glVertex3f(7.8,-2.5,7.8);//3'
glVertex3f(7.8,-2.5,2.8);//3
glEnd();
glBegin(GL_POLYGON);//
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(7.8,-2.5,2.8);//3
glVertex3f(7.8,-2.5,7.8);//3'
glVertex3f(2.8,-2.5,7.8);//4'
glVertex3f(2.8,-2.5,2.8);//4
glEnd();
//Abajo izq
glBegin(GL_POLYGON);//
glVertex3f(-7.8,-2.8,2.8);//1
glVertex3f(-2.8,-2.8,2.8);//2
glVertex3f(-2.8,-7.8,2.8);//3
glVertex3f(-7.8,-7.8,2.8);//4
glEnd();
glBegin(GL_POLYGON);
glColor3f(0.0f,0.0f,1.0f);// azul
glVertex3f(-7.8,-2.8,7.8);//1'
glVertex3f(-2.8,-2.8,7.8);//2'
glVertex3f(-2.8,-7.8,7.8);//3'
glVertex3f(-7.8,-7.8,7.8);//4'
glEnd();
    glBegin(GL_POLYGON);//
glColor3f(0.5f, 0.0f, 1.0f); //morado
glVertex3f(-7.8,-2.8,2.8);//1
glVertex3f(-7.8,-2.8,7.8);//1'
glVertex3f(-7.8,-7.8,7.8);//4'
glVertex3f(-7.8,-7.8,2.8);//4
glEnd();
glBegin(GL_POLYGON);//
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(-7.8,-2.8,2.8);//1
glVertex3f(-7.8,-2.8,7.8);//1'
glVertex3f(-2.8,-2.8,7.8);//2'
glVertex3f(-2.8,-2.8,2.8);//2
glEnd();
glBegin(GL_POLYGON);//
glVertex3f(-2.8,-2.8,2.8);//2
glVertex3f(-2.8,-2.8,7.8);//2'
glVertex3f(-2.8,-7.8,7.8);//3'
glVertex3f(-2.8,-7.8,2.8);//3
glEnd();
glBegin(GL_POLYGON);//
glColor3f(1.0f,1.0f,1.0f);//blanco
glVertex3f(-2.8,-7.8,2.8);//3
glVertex3f(-2.8,-7.8,7.8);//3'
glVertex3f(-7.8,-7.8,7.8);//4'
glVertex3f(-7.8,-7.8,2.8);//4
glEnd();

//abajo centro
glBegin(GL_POLYGON);//
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(-2.5,-2.8,2.8);//1
glVertex3f(2.5,-2.8,2.8);//2
glVertex3f(2.5,-7.8,2.8);//3
glVertex3f(-2.5,-7.8,2.8);//4
glEnd();
glBegin(GL_POLYGON);
glColor3f(0.0f,0.0f,1.0f);// azul
glVertex3f(-2.5,-2.8,7.8);//1'
glVertex3f(2.5,-2.8,7.8);//2'
glVertex3f(2.5,-7.8,7.8);//3'
glVertex3f(-2.5,-7.8,7.8);//4'
glEnd();
    glBegin(GL_POLYGON);//
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(-2.5,-2.8,2.8);//1
glVertex3f(-2.5,-2.8,7.8);//1'
glVertex3f(-2.5,-7.8,7.8);//4'
glVertex3f(-2.5,-7.8,2.8);//4
glEnd();
glBegin(GL_POLYGON);//
glVertex3f(-2.5,-2.8,2.8);//1
glVertex3f(-2.5,-2.8,7.8);//1'
glVertex3f(2.5,-2.8,7.8);//2'
glVertex3f(2.5,-2.8,2.8);//2
glEnd();
glBegin(GL_POLYGON);//
glVertex3f(2.5,-2.8,2.8);//2
glVertex3f(2.5,-2.8,7.8);//2'
glVertex3f(2.5,-7.8,7.8);//3'
glVertex3f(2.5,-7.8,2.8);//3
glEnd();
glBegin(GL_POLYGON);//
glColor3f(1.0f,1.0f,1.0f);//blanco
glVertex3f(2.5,-7.8,2.8);//3
glVertex3f(2.5,-7.8,7.8);//3'
glVertex3f(-2.5,-7.8,7.8);//4'
glVertex3f(-2.5,-7.8,2.8);//4
glEnd();

//abajo derecha
glBegin(GL_POLYGON);//
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(2.8,-2.8,2.8);//1
glVertex3f(7.8,-2.8,2.8);//2
glVertex3f(7.8,-7.8,2.8);//3
glVertex3f(2.8,-7.8,2.8);//4
glEnd();
glBegin(GL_POLYGON);
glColor3f(0.0f,0.0f,1.0f);// azul
glVertex3f(2.8,-2.8,7.8);//1'
glVertex3f(7.8,-2.8,7.8);//2'
glVertex3f(7.8,-7.8,7.8);//3'
glVertex3f(2.8,-7.8,7.8);//4'
glEnd();
    glBegin(GL_POLYGON);//
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(2.8,-2.8,2.8);//1
glVertex3f(2.8,-2.8,7.8);//1'
glVertex3f(2.8,-7.8,7.8);//4'
glVertex3f(2.8,-7.8,2.8);//4
glEnd();
glBegin(GL_POLYGON);//
glVertex3f(2.8,-2.8,2.8);//1
glVertex3f(2.8,-2.8,7.8);//1'
glVertex3f(7.8,-2.8,7.8);//2'
glVertex3f(7.8,-2.8,2.8);//2
glEnd();
glBegin(GL_POLYGON);//
glColor3f(1.0f, 0.0f, 0.0f); // rojo
glVertex3f(7.8,-2.8,2.8);//2
glVertex3f(7.8,-2.8,7.8);//2'
glVertex3f(7.8,-7.8,7.8);//3'
glVertex3f(7.8,-7.8,2.8);//3
glEnd();
glBegin(GL_POLYGON);//
glColor3f(1.0f,1.0f,1.0f);//blanco
glVertex3f(7.8,-7.8,2.8);//3
glVertex3f(7.8,-7.8,7.8);//3'
glVertex3f(2.8,-7.8,7.8);//4'
glVertex3f(2.8,-7.8,2.8);//4
glEnd();

/*=========================================Centro=================================================*/
//arriba-izq
glBegin(GL_POLYGON);
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(-7.8,7.8,-2.5);//1
glVertex3f(-2.8,7.8,-2.5);//2
glVertex3f(-2.8,2.8,-2.5);//3
glVertex3f(-7.8,2.8,-2.5);//4
glEnd();
glBegin(GL_POLYGON);//
glVertex3f(-7.8,7.8,2.5);//1'
glVertex3f(-2.8,7.8,2.5);//2'
glVertex3f(-2.8,2.8,2.5);//3'
glVertex3f(-7.8,2.8,2.5);//4'
glEnd();
    glBegin(GL_POLYGON);
glColor3f(0.5f, 0.0f, 1.0f); //morado
glVertex3f(-7.8,7.8,-2.5);//1
glVertex3f(-7.8,7.8,2.5);//1'
glVertex3f(-7.8,2.8,2.5);//4'
glVertex3f(-7.8,2.8,-2.5);//4
glEnd();
glBegin(GL_POLYGON);
glColor3f(0.0f, 1.0f, 0.0f); // verde
glVertex3f(-7.8,7.8,-2.5);//1
glVertex3f(-7.8,7.8,2.5);//1'
glVertex3f(-2.8,7.8,2.5);//2'
glVertex3f(-2.8,7.8,-2.5);//2
glEnd();
glBegin(GL_POLYGON);
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(-2.8,7.8,-2.5);//2
glVertex3f(-2.8,7.8,2.5);//2'
glVertex3f(-2.8,2.8,2.5);//3'
glVertex3f(-2.8,2.8,-2.5);//3
glEnd();
glBegin(GL_POLYGON);
glVertex3f(-2.8,2.8,-2.5);//3
glVertex3f(-2.8,2.8,2.5);//3'
glVertex3f(-7.8,2.8,2.5);//4'
glVertex3f(-7.8,2.8,-2.5);//4
glEnd();

//arriba-centro
glBegin(GL_POLYGON);
glVertex3f(-2.5,7.8,-2.5);//1
glVertex3f(2.5,7.8,-2.5);//2
glVertex3f(2.5,2.8,-2.5);//3
glVertex3f(-2.5,2.8,-2.5);//4
glEnd();
glBegin(GL_POLYGON);//
glVertex3f(-2.5,7.8,2.5);//1'
glVertex3f(2.5,7.8,2.5);//2'
glVertex3f(2.5,2.8,2.5);//3'
glVertex3f(-2.5,2.8,2.5);//4'
glEnd();
    glBegin(GL_POLYGON);
glVertex3f(-2.5,7.8,-2.5);//1
glVertex3f(-2.5,7.8,2.5);//1'
glVertex3f(-2.5,2.8,2.5);//4'
glVertex3f(-2.5,2.8,-2.5);//4
glEnd();
glBegin(GL_POLYGON);
glColor3f(0.0f, 1.0f, 0.0f); // verde
glVertex3f(-2.5,7.8,-2.5);//1
glVertex3f(-2.5,7.8,2.5);//1'
glVertex3f(2.5,7.8,2.5);//2'
glVertex3f(2.5,7.8,-2.5);//2
glEnd();
glBegin(GL_POLYGON);
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(2.5,7.8,-2.5);//2
glVertex3f(2.5,7.8,2.5);//2'
glVertex3f(2.5,2.8,2.5);//3'
glVertex3f(2.5,2.8,-2.5);//3
glEnd();
glBegin(GL_POLYGON);
glVertex3f(2.5,2.8,-2.5);//3
glVertex3f(2.5,2.8,2.5);//3'
glVertex3f(-2.5,2.8,2.5);//4'
glVertex3f(-2.5,2.8,-2.5);//4
glEnd();

//arriba derecha
glBegin(GL_POLYGON);
glVertex3f(2.8,7.8,-2.5);//1
glVertex3f(7.8,7.8,-2.5);//2
glVertex3f(7.8,2.8,-2.5);//3
glVertex3f(2.8,2.8,-2.5);//4
glEnd();
glBegin(GL_POLYGON);//
glVertex3f(2.8,7.8,2.5);//1'
glVertex3f(7.8,7.8,2.5);//2'
glVertex3f(7.8,2.8,2.5);//3'
glVertex3f(2.8,2.8,2.5);//4'
glEnd();
    glBegin(GL_POLYGON);
glVertex3f(2.8,7.8,-2.5);//1
glVertex3f(2.8,7.8,2.5);//1'
glVertex3f(2.8,2.8,2.5);//4'
glVertex3f(2.8,2.8,-2.5);//4
glEnd();
glBegin(GL_POLYGON);
glColor3f(0.0f, 1.0f, 0.0f); // verde
glVertex3f(2.8,7.8,-2.5);//1
glVertex3f(2.8,7.8,2.5);//1'
glVertex3f(7.8,7.8,2.5);//2'
glVertex3f(7.8,7.8,-2.5);//2
glEnd();
glBegin(GL_POLYGON);
glColor3f(1.0f, 0.0f, 0.0f); // rojo
glVertex3f(7.8,7.8,-2.5);//2
glVertex3f(7.8,7.8,2.5);//2'
glVertex3f(7.8,2.8,2.5);//3'
glVertex3f(7.8,2.8,-2.5);//3
glEnd();
glBegin(GL_POLYGON);
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(7.8,2.8,-2.5);//3
glVertex3f(7.8,2.8,2.5);//3'
glVertex3f(2.8,2.8,2.5);//4'
glVertex3f(2.8,2.8,-2.5);//4
glEnd();
//centro-izquierda
glBegin(GL_POLYGON);
glVertex3f(-7.8,2.5,-2.5);//1
glVertex3f(-2.8,2.5,-2.5);//2
glVertex3f(-2.8,-2.5,-2.5);//3
glVertex3f(-7.8,-2.5,-2.5);//4
glEnd();
glBegin(GL_POLYGON);//
glVertex3f(-7.8,2.5,2.5);//1'
glVertex3f(-2.8,2.5,2.5);//2'
glVertex3f(-2.8,-2.5,2.5);//3'
glVertex3f(-7.8,-2.5,2.5);//4'
glEnd();
    glBegin(GL_POLYGON);
glColor3f(0.5f, 0.0f, 1.0f); //morado
glVertex3f(-7.8,2.5,-2.5);//1
glVertex3f(-7.8,2.5,2.5);//1'
glVertex3f(-7.8,-2.5,2.5);//4'
glVertex3f(-7.8,-2.5,-2.5);//4
    glEnd();
glBegin(GL_POLYGON);
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(-7.8,2.5,-2.5);//1
glVertex3f(-7.8,2.5,2.5);//1'
glVertex3f(-2.8,2.5,2.5);//2'
glVertex3f(-2.8,2.5,-2.5);//2
glEnd();
glBegin(GL_POLYGON);
glVertex3f(-2.8,2.5,-2.5);//2
glVertex3f(-2.8,2.5,2.5);//2'
glVertex3f(-2.8,-2.5,2.5);//3'
glVertex3f(-2.8,-2.5,-2.5);//3
glEnd();
glBegin(GL_POLYGON);
glVertex3f(-2.8,-2.5,-2.5);//3
glVertex3f(-2.8,-2.5,2.5);//3'
glVertex3f(-7.8,-2.5,2.5);//4'
glVertex3f(-7.8,-2.5,-2.5);//4
glEnd();

//centro-centro sincubo

//centro- derecha
glBegin(GL_POLYGON);
glVertex3f(2.8,2.5,-2.5);//1
glVertex3f(7.8,2.5,-2.5);//2
glVertex3f(7.8,-2.5,-2.5);//3
glVertex3f(2.8,-2.5,-2.5);//4
glEnd();
glBegin(GL_POLYGON);//
glVertex3f(2.8,2.5,2.5);//1'
glVertex3f(7.8,2.5,2.5);//2'
glVertex3f(7.8,-2.5,2.5);//3'
glVertex3f(2.8,-2.5,2.5);//4'
glEnd();
    glBegin(GL_POLYGON);
glVertex3f(2.8,2.5,-2.5);//1
glVertex3f(2.8,2.5,2.5);//1'
glVertex3f(2.8,-2.5,2.5);//4'
glVertex3f(2.8,-2.5,-2.5);//4
glEnd();
glVertex3f(2.8,2.5,-2.5);//1
glVertex3f(2.8,2.5,2.5);//1'
glVertex3f(7.8,2.5,2.5);//2'
glVertex3f(7.8,2.5,-2.5);//2
glEnd();
glBegin(GL_POLYGON);
glColor3f(1.0f, 0.0f, 0.0f); // rojo
glVertex3f(7.8,2.5,-2.5);//2
glVertex3f(7.8,2.5,2.5);//2'
glVertex3f(7.8,-2.5,2.5);//3'
glVertex3f(7.8,-2.5,-2.5);//3
glEnd();
glBegin(GL_POLYGON);
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(7.8,-2.5,-2.5);//3
glVertex3f(7.8,-2.5,2.5);//3'
glVertex3f(2.8,-2.5,2.5);//4'
glVertex3f(2.8,-2.5,-2.5);//4
glEnd();

//abajo-izq
glBegin(GL_POLYGON);
glVertex3f(-7.8,-2.8,-2.5);//1
glVertex3f(-2.8,-2.8,-2.5);//2
glVertex3f(-2.8,-7.8,-2.5);//3
glVertex3f(-7.8,-7.8,-2.5);//4
glEnd();
glBegin(GL_POLYGON);//
glVertex3f(-7.8,-2.8,2.5);//1'
glVertex3f(-2.8,-2.8,2.5);//2'
glVertex3f(-2.8,-7.8,2.5);//3'
glVertex3f(-7.8,-7.8,2.5);//4'
glEnd();
    glBegin(GL_POLYGON);
glColor3f(0.5f, 0.0f, 1.0f); //morado
glVertex3f(-7.8,-2.8,-2.5);//1
glVertex3f(-7.8,-2.8,2.5);//1'
glVertex3f(-7.8,-7.8,2.5);//4'
glVertex3f(-7.8,-7.8,-2.5);//4
glEnd();
    glBegin(GL_POLYGON);
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(-7.8,-2.8,-2.5);//1
glVertex3f(-7.8,-2.8,2.5);//1'
glVertex3f(-2.8,-2.8,2.5);//2'
glVertex3f(-2.8,-2.8,-2.5);//2
glEnd();
glBegin(GL_POLYGON);
glVertex3f(-2.8,-2.8,-2.5);//2
glVertex3f(-2.8,-2.8,2.5);//2'
glVertex3f(-2.8,-7.8,2.5);//3'
glVertex3f(-2.8,-7.8,-2.5);//3
glEnd();
glBegin(GL_POLYGON);
glColor3f(1.0f,1.0f,1.0f);//blanco
glVertex3f(-2.8,-7.8,-2.5);//3
glVertex3f(-2.8,-7.8,2.5);//3'
glVertex3f(-7.8,-7.8,2.5);//4'
glVertex3f(-7.8,-7.8,-2.5);//4
glEnd();

//abajo-centro
glBegin(GL_POLYGON);
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(-2.5,-2.8,-2.5);//1
glVertex3f(2.5,-2.8,-2.5);//2
glVertex3f(2.5,-7.8,-2.5);//3
glVertex3f(-2.5,-7.8,-2.5);//4
glEnd();
glBegin(GL_POLYGON);//
glVertex3f(-2.5,-2.8,2.5);//1'
glVertex3f(2.5,-2.8,2.5);//2'
glVertex3f(2.5,-7.8,2.5);//3'
glVertex3f(-2.5,-7.8,2.5);//4'
glEnd();
    glBegin(GL_POLYGON);
glVertex3f(-2.5,-2.8,-2.5);//1
glVertex3f(-2.5,-2.8,2.5);//1'
glVertex3f(-2.5,-7.8,2.5);//4'
glVertex3f(-2.5,-7.8,-2.5);//4
glEnd();
glBegin(GL_POLYGON);
glVertex3f(-2.5,-2.8,-2.5);//1
glVertex3f(-2.5,-2.8,2.5);//1'
glVertex3f(2.5,-2.8,2.5);//2'
glVertex3f(2.5,-2.8,-2.5);//2
glEnd();
glBegin(GL_POLYGON);
glVertex3f(2.5,-2.8,-2.5);//2
glVertex3f(2.5,-2.8,2.5);//2'
glVertex3f(2.5,-7.8,2.5);//3'
glVertex3f(2.5,-7.8,-2.5);//3
glEnd();
glBegin(GL_POLYGON);
glColor3f(1.0f,1.0f,1.0f);//blanco
glVertex3f(2.5,-7.8,-2.5);//3
glVertex3f(2.5,-7.8,2.5);//3'
glVertex3f(-2.5,-7.8,2.5);//4'
glVertex3f(-2.5,-7.8,-2.5);//4
glEnd();

//abajo derecha
glBegin(GL_POLYGON);
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(2.8,-2.8,-2.5);//1
glVertex3f(7.8,-2.8,-2.5);//2
glVertex3f(7.8,-7.8,-2.5);//3
glVertex3f(2.8,-7.8,-2.5);//4
glEnd();
glBegin(GL_POLYGON);//
glVertex3f(2.8,-2.8,2.5);//1'
glVertex3f(7.8,-2.8,2.5);//2'
glVertex3f(7.8,-7.8,2.5);//3'
glVertex3f(2.8,-7.8,2.5);//4'
glEnd();
glBegin(GL_POLYGON);
glVertex3f(2.8,-2.8,-2.5);//1
glVertex3f(2.8,-2.8,2.5);//1'
glVertex3f(2.8,-7.8,2.5);//4'
glVertex3f(2.8,-7.8,-2.5);//4
glEnd();
glBegin(GL_POLYGON);
glVertex3f(2.8,-2.8,-2.5);//1
glVertex3f(2.8,-2.8,2.5);//1'
glVertex3f(7.8,-2.8,2.5);//2'
glVertex3f(7.8,-2.8,-2.5);//2
glEnd();
glBegin(GL_POLYGON);
glColor3f(1.0f, 0.0f, 0.0f); // rojo
glVertex3f(7.8,-2.8,-2.5);//2
glVertex3f(7.8,-2.8,2.5);//2'
glVertex3f(7.8,-7.8,2.5);//3'
glVertex3f(7.8,-7.8,-2.5);//3
glEnd();
glBegin(GL_POLYGON);
glColor3f(1.0f,1.0f,1.0f);//blanco
glVertex3f(7.8,-7.8,-2.5);//3
glVertex3f(7.8,-7.8,2.5);//3'
glVertex3f(2.8,-7.8,2.5);//4'
glVertex3f(2.8,-7.8,-2.5);//4
glEnd();

/*=============================================frente========================================*/
//arriba-izq
glBegin(GL_POLYGON);
    glColor3f(1.0f, 1.0f, 0.0f); // amarillo
glVertex3f(-7.8,7.8,-7.8);//1
glVertex3f(-2.8,7.8,-7.8);//2
glVertex3f(-2.8,2.8,-7.8);//3
glVertex3f(-7.8,2.8,-7.8);//4
glEnd();
glBegin(GL_POLYGON);//
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(-7.8,7.8,-2.8);//1'
glVertex3f(-2.8,7.8,-2.8);//2'
glVertex3f(-2.8,2.8,-2.8);//3'
glVertex3f(-7.8,2.8,-2.8);//4'
glEnd();
glBegin(GL_POLYGON);
glColor3f(0.5f, 0.0f, 1.0f); //morado
glVertex3f(-7.8,7.8,-7.8);//1
glVertex3f(-7.8,7.8,-2.8);//1'
glVertex3f(-7.8,2.8,-2.8);//4'
glVertex3f(-7.8,2.8,-7.8);//4
glEnd();
glBegin(GL_POLYGON);
glColor3f(0.0f, 1.0f, 0.0f); // verde
glVertex3f(-7.8,7.8,-7.8);//1
glVertex3f(-7.8,7.8,-2.8);//1'
glVertex3f(-2.8,7.8,-2.8);//2'
glVertex3f(-2.8,7.8,-7.8);//2
glEnd();
glBegin(GL_POLYGON);
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(-2.8,7.8,-7.8);//2
glVertex3f(-2.8,7.8,-2.8);//2'
glVertex3f(-2.8,2.8,-2.8);//3'
glVertex3f(-2.8,2.8,-7.8);//3
glEnd();
glBegin(GL_POLYGON);
glVertex3f(-2.8,2.8,-7.8);//3
glVertex3f(-2.8,2.8,-2.8);//3'
glVertex3f(-7.8,2.8,-2.8);//4'
glVertex3f(-7.8,2.8,-7.8);//4
glEnd();

//arriba-centro
glBegin(GL_POLYGON);
glColor3f(1.0f, 1.0f, 0.0f); // amarillo
glVertex3f(-2.5,7.8,-7.8);//1
glVertex3f(2.5,7.8,-7.8);//2
glVertex3f(2.5,2.8,-7.8);//3
glVertex3f(-2.5,2.8,-7.8);//4
glEnd();
glBegin(GL_POLYGON);//
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(-2.5,7.8,-2.8);//1'
glVertex3f(2.5,7.8,-2.8);//2'
glVertex3f(2.5,2.8,-2.8);//3'
glVertex3f(-2.5,2.8,-2.8);//4'
glEnd();
glBegin(GL_POLYGON);
glVertex3f(-2.5,7.8,-7.8);//1
glVertex3f(-2.5,7.8,-2.8);//1'
glVertex3f(-2.5,2.8,-2.8);//4'
glVertex3f(-2.5,2.8,-7.8);//4
glEnd();
glBegin(GL_POLYGON);
glColor3f(0.0f, 1.0f, 0.0f); // verde
glVertex3f(-2.5,7.8,-7.8);//1
glVertex3f(-2.5,7.8,-2.8);//1'
glVertex3f(2.5,7.8,-2.8);//2'
glVertex3f(2.5,7.8,-7.8);//2
glEnd();
glBegin(GL_POLYGON);
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(2.5,7.8,-7.8);//2
glVertex3f(2.5,7.8,-2.8);//2'
glVertex3f(2.5,2.8,-2.8);//3'
glVertex3f(2.5,2.8,-7.8);//3
glEnd();
glBegin(GL_POLYGON);
glVertex3f(2.5,2.8,-7.8);//3
glVertex3f(2.5,2.8,-2.8);//3'
glVertex3f(-2.5,2.8,-2.8);//4'
glVertex3f(-2.5,2.8,-7.8);//4
glEnd();

//arriba-derecha
glBegin(GL_POLYGON);
glColor3f(1.0f, 1.0f, 0.0f); // amarillo
glVertex3f(2.8,7.8,-7.8);//1
glVertex3f(7.8,7.8,-7.8);//2
glVertex3f(7.8,2.8,-7.8);//3
glVertex3f(2.8,2.8,-7.8);//4
glEnd();
glBegin(GL_POLYGON);//
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(2.8,7.8,-2.8);//1'
glVertex3f(7.8,7.8,-2.8);//2'
glVertex3f(7.8,2.8,-2.8);//3'
glVertex3f(2.8,2.8,-2.8);//4'
glEnd();
glBegin(GL_POLYGON);
glVertex3f(2.8,7.8,-7.8);//1
glVertex3f(2.8,7.8,-2.8);//1'
glVertex3f(2.8,2.8,-2.8);//4'
glVertex3f(2.8,2.8,-7.8);//4
glEnd();
glBegin(GL_POLYGON);
glColor3f(0.0f, 1.0f, 0.0f); // verde
glVertex3f(2.8,7.8,-7.8);//1
glVertex3f(2.8,7.8,-2.8);//1'
glVertex3f(7.8,7.8,-2.8);//2'
glVertex3f(7.8,7.8,-7.8);//2
glEnd();
glBegin(GL_POLYGON);
glColor3f(1.0f, 0.0f, 0.0f); // rojo
glVertex3f(7.8,7.8,-7.8);//2
glVertex3f(7.8,7.8,-2.8);//2'
glVertex3f(7.8,2.8,-2.8);//3'
glVertex3f(7.8,2.8,-7.8);//3
glEnd();
glBegin(GL_POLYGON);
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(7.8,2.8,-7.8);//3
glVertex3f(7.8,2.8,-2.8);//3'
glVertex3f(2.8,2.8,-2.8);//4'
glVertex3f(2.8,2.8,-7.8);//4
glEnd();
//centro-izquierda
glBegin(GL_POLYGON);
    glColor3f(1.0f, 1.0f, 0.0f); // amarillo
glVertex3f(-7.8,2.5,-7.8);//1
glVertex3f(-2.8,2.5,-7.8);//2
glVertex3f(-2.8,-2.5,-7.8);//3
glVertex3f(-7.8,-2.5,-7.8);//4
glEnd();
glBegin(GL_POLYGON);//
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(-7.8,2.5,-2.8);//1'
glVertex3f(-2.8,2.5,-2.8);//2'
glVertex3f(-2.8,-2.5,-2.8);//3'
glVertex3f(-7.8,-2.5,-2.8);//4'
glEnd();
glBegin(GL_POLYGON);
glColor3f(0.5f, 0.0f, 1.0f); //morado
glVertex3f(-7.8,2.5,-7.8);//1
glVertex3f(-7.8,2.5,-2.8);//1'
glVertex3f(-7.8,-2.5,-2.8);//4'
glVertex3f(-7.8,-2.5,-7.8);//4
glEnd();
glBegin(GL_POLYGON);
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(-7.8,2.5,-7.8);//1
glVertex3f(-7.8,2.5,-2.8);//1'
glVertex3f(-2.8,2.5,-2.8);//2'
glVertex3f(-2.8,2.5,-7.8);//2
glEnd();
glBegin(GL_POLYGON);
glVertex3f(-2.8,2.5,-7.8);//2
glVertex3f(-2.8,2.5,-2.8);//2'
glVertex3f(-2.8,-2.5,-2.8);//3'
glVertex3f(-2.8,-2.5,-7.8);//3
glEnd();
glBegin(GL_POLYGON);
glVertex3f(-2.8,-2.5,-7.8);//3
glVertex3f(-2.8,-2.5,-2.8);//3'
glVertex3f(-7.8,-2.5,-2.8);//4'
glVertex3f(-7.8,-2.5,-7.8);//4
glEnd();

//centro-centro
glBegin(GL_POLYGON);
glColor3f(1.0f, 1.0f, 0.0f); // amarillo
glVertex3f(-2.5,2.5,-7.8);//1
glVertex3f(2.5,2.5,-7.8);//2
glVertex3f(2.5,-2.5,-7.8);//3
glVertex3f(-2.5,-2.5,-7.8);//4
glEnd();
glBegin(GL_POLYGON);//
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(-2.5,2.5,-2.8);//1'
glVertex3f(2.5,2.5,-2.8);//2'
glVertex3f(2.5,-2.5,-2.8);//3'
glVertex3f(-2.5,-2.5,-2.8);//4'
glEnd();
glBegin(GL_POLYGON);
glVertex3f(-2.5,2.5,-7.8);//1
glVertex3f(-2.5,2.5,-2.8);//1'
glVertex3f(-2.5,-2.5,-2.8);//4'
glVertex3f(-2.5,-2.5,-7.8);//4
glEnd();
glBegin(GL_POLYGON);
glVertex3f(-2.5,2.5,-7.8);//1
glVertex3f(-2.5,2.5,-2.8);//1'
glVertex3f(2.5,2.5,-2.8);//2'
glVertex3f(2.5,2.5,-7.8);//2
glEnd();
glBegin(GL_POLYGON);
glVertex3f(2.5,2.5,-7.8);//2
glVertex3f(2.5,2.5,-2.8);//2'
glVertex3f(2.5,-2.5,-2.8);//3'
glVertex3f(2.5,-2.5,-7.8);//3
glEnd();
glBegin(GL_POLYGON);
glVertex3f(2.5,-2.5,-7.8);//3
glVertex3f(2.5,-2.5,-2.8);//3'
glVertex3f(-2.5,-2.5,-2.8);//4'
glVertex3f(-2.5,-2.5,-7.8);//4
glEnd();

//centro-derecha
glBegin(GL_POLYGON);
glColor3f(1.0f, 1.0f, 0.0f); // amarillo
glVertex3f(2.8,2.5,-7.8);//1
glVertex3f(7.8,2.5,-7.8);//2
glVertex3f(7.8,-2.5,-7.8);//3
glVertex3f(2.8,-2.5,-7.8);//4
glEnd();
glBegin(GL_POLYGON);//
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(2.8,2.5,-2.8);//1'
glVertex3f(7.8,2.5,-2.8);//2'
glVertex3f(7.8,-2.5,-2.8);//3'
glVertex3f(2.8,-2.5,-2.8);//4'
glEnd();
glBegin(GL_POLYGON);
glVertex3f(2.8,2.5,-7.8);//1
glVertex3f(2.8,2.5,-2.8);//1'
glVertex3f(2.8,-2.5,-2.8);//4'
glVertex3f(2.8,-2.5,-7.8);//4
glEnd();
glBegin(GL_POLYGON);
glVertex3f(2.8,2.5,-7.8);//1
glVertex3f(2.8,2.5,-2.8);//1'
glVertex3f(7.8,2.5,-2.8);//2'
glVertex3f(7.8,2.5,-7.8);//2
glEnd();
glBegin(GL_POLYGON);
glColor3f(1.0f, 0.0f, 0.0f); // rojo
glVertex3f(7.8,2.5,-7.8);//2
glVertex3f(7.8,2.5,-2.8);//2'
glVertex3f(7.8,-2.5,-2.8);//3'
glVertex3f(7.8,-2.5,-7.8);//3
glEnd();
glBegin(GL_POLYGON);
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(7.8,-2.5,-7.8);//3
glVertex3f(7.8,-2.5,-2.8);//3'
glVertex3f(2.8,-2.5,-2.8);//4'
glVertex3f(2.8,-2.5,-7.8);//4
glEnd();

//abajo izq
glBegin(GL_POLYGON);
glColor3f(1.0f, 1.0f, 0.0f); // amarillo
glVertex3f(-7.8,-2.8,-7.8);//1
glVertex3f(-2.8,-2.8,-7.8);//2
glVertex3f(-2.8,-7.8,-7.8);//3
glVertex3f(-7.8,-7.8,-7.8);//4
glEnd();
glBegin(GL_POLYGON);//
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(-7.8,-2.8,-2.8);//1'
glVertex3f(-2.8,-2.8,-2.8);//2'
glVertex3f(-2.8,-7.8,-2.8);//3'
glVertex3f(-7.8,-7.8,-2.8);//4'
glEnd();
glBegin(GL_POLYGON);
glColor3f(0.5f, 0.0f, 1.0f); //morado
glVertex3f(-7.8,-2.8,-7.8);//1
glVertex3f(-7.8,-2.8,-2.8);//1'
glVertex3f(-7.8,-7.8,-2.8);//4'
glVertex3f(-7.8,-7.8,-7.8);//4
glEnd();
glBegin(GL_POLYGON);
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(-7.8,-2.8,-7.8);//1
glVertex3f(-7.8,-2.8,-2.8);//1'
glVertex3f(-2.8,-2.8,-2.8);//2'
glVertex3f(-2.8,-2.8,-7.8);//2
glEnd();
glBegin(GL_POLYGON);
glVertex3f(-2.8,-2.8,-7.8);//2
glVertex3f(-2.8,-2.8,-2.8);//2'
glVertex3f(-2.8,-7.8,-2.8);//3'
glVertex3f(-2.8,-7.8,-7.8);//3
glEnd();
glBegin(GL_POLYGON);
glColor3f(1.0f,1.0f,1.0f);//blanco
glVertex3f(-2.8,-7.8,-7.8);//3
glVertex3f(-2.8,-7.8,-2.8);//3'
glVertex3f(-7.8,-7.8,-2.8);//4'
glVertex3f(-7.8,-7.8,-7.8);//4
glEnd();

//abajo-centro
glBegin(GL_POLYGON);
glColor3f(1.0f, 1.0f, 0.0f); // amarillo
glVertex3f(-2.5,-2.8,-7.8);//1
glVertex3f(2.5,-2.8,-7.8);//2
glVertex3f(2.5,-7.8,-7.8);//3
glVertex3f(-2.5,-7.8,-7.8);//4
glEnd();
glBegin(GL_POLYGON);//
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(-2.5,-2.8,-2.8);//1'
glVertex3f(2.5,-2.8,-2.8);//2'
glVertex3f(2.5,-7.8,-2.8);//3'
glVertex3f(-2.5,-7.8,-2.8);//4'
glEnd();
glBegin(GL_POLYGON);
glVertex3f(-2.5,-2.8,-7.8);//1
glVertex3f(-2.5,-2.8,-2.8);//1'
glVertex3f(-2.5,-7.8,-2.8);//4'
glVertex3f(-2.5,-7.8,-7.8);//4
glEnd();
glBegin(GL_POLYGON);
glVertex3f(-2.5,-2.8,-7.8);//1
glVertex3f(-2.5,-2.8,-2.8);//1'
glVertex3f(2.5,-2.8,-2.8);//2'
glVertex3f(2.5,-2.8,-7.8);//2
glEnd();
glBegin(GL_POLYGON);
glVertex3f(2.5,-2.8,-7.8);//2
glVertex3f(2.5,-2.8,-2.8);//2'
glVertex3f(2.5,-7.8,-2.8);//3'
glVertex3f(2.5,-7.8,-7.8);//3
glEnd();
glBegin(GL_POLYGON);
glColor3f(1.0f,1.0f,1.0f);//blanco
glVertex3f(2.5,-7.8,-7.8);//3
glVertex3f(2.5,-7.8,-2.8);//3'
glVertex3f(-2.5,-7.8,-2.8);//4'
glVertex3f(-2.5,-7.8,-7.8);//4
glEnd();

//abajo-derecha
glBegin(GL_POLYGON);
glColor3f(1.0f, 1.0f, 0.0f); // amarillo
glVertex3f(2.8,-2.8,-7.8);//1
glVertex3f(7.8,-2.8,-7.8);//2
glVertex3f(7.8,-7.8,-7.8);//3
glVertex3f(2.8,-7.8,-7.8);//4
glEnd();
glBegin(GL_POLYGON);//
glColor3f(0.0f,0.0f,0.0f);//negro
glVertex3f(2.8,-2.8,-2.8);//1'
glVertex3f(7.8,-2.8,-2.8);//2'
glVertex3f(7.8,-7.8,-2.8);//3'
glVertex3f(2.8,-7.8,-2.8);//4'
glEnd();
glBegin(GL_POLYGON);
glVertex3f(2.8,-2.8,-7.8);//1
glVertex3f(2.8,-2.8,-2.8);//1'
glVertex3f(2.8,-7.8,-2.8);//4'
glVertex3f(2.8,-7.8,-7.8);//4
glEnd();
glBegin(GL_POLYGON);
glVertex3f(2.8,-2.8,-7.8);//1
glVertex3f(2.8,-2.8,-2.8);//1'
glVertex3f(7.8,-2.8,-2.8);//2'
glVertex3f(7.8,-2.8,-7.8);//2
glEnd();
glBegin(GL_POLYGON);
glColor3f(1.0f, 0.0f, 0.0f); // rojo
glVertex3f(7.8,-2.8,-7.8);//2
glVertex3f(7.8,-2.8,-2.8);//2'
glVertex3f(7.8,-7.8,-2.8);//3'
glVertex3f(7.8,-7.8,-7.8);//3
glEnd();
glBegin(GL_POLYGON);
glColor3f(1.0f,1.0f,1.0f);//blanco
glVertex3f(7.8,-7.8,-7.8);//3
glVertex3f(7.8,-7.8,-2.8);//3'
glVertex3f(2.8,-7.8,-2.8);//4'
glVertex3f(2.8,-7.8,-7.8);//4
glEnd();

}

void display()/*Aquí se define el primer callback. La función pasada como parámetro será llamada cada vez que GLUT determine oportuno que la ventana debe ser redibujada, como al maximizarse, poner otras ventanas por encima y después quitarlas, etc.*/
{

 glClear(GL_COLOR_BUFFER_BIT| GL_DEPTH_BUFFER_BIT);
 glLoadIdentity();
 glRotatef(angulox, 1.0f, 0.0f, 0.0f);//rotar en x
 glRotatef(anguloy, 0.0f, 1.0f, 0.0f);//rotar en y
 cubos();
 glFlush();/*vacía todos los comandos en estos buffers y las fuerzas de todos los comandos pendientes voluntad de ser ejecutadas inmediatamente y sin topes de espera están llenas.*/
 glutSwapBuffers();/*promueve el contenido de la memoria intermedia posterior de la capa en el uso de la ventana actual para convertirse en el contenido del búfer frontal. */

}
void init()
{
    glClearColor(0,0,0,0);
    glEnable(GL_DEPTH_TEST);// tapa las lineas que estan debajo de ellas
}

void idle()
{
    display();
}

void ArrowKey(int key, int x, int y){ //funcion para trasladar en -x,x,-y,y

switch (key){
case GLUT_KEY_RIGHT:
angulox+=1.65f;
break;

case GLUT_KEY_LEFT:
angulox-=1.65f;
break;

case GLUT_KEY_UP:
anguloy+=1.65f;
break;

case GLUT_KEY_DOWN:
anguloy-=1.65f;
break;
}
}
void keyboard(unsigned char key, int x, int y)
{
switch (key) {
case 27:
exit(0);
break;
}
}
int main(int argc, char **argv) //Funcion para crear ventana
{
 glutInit(&argc, argv);
 glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);/*GLUT_DOUBLE para que glutSwapBuffers() tenga efecto, CON GLUT_SINGLE no hay efecto;GLUT_SINGLE para que glFlush() tenga efecto  */
 glutInitWindowPosition(500,60);//Posicion de la ventana
 glutInitWindowSize(600,500);//tamaño de la ventana
 glutCreateWindow("Cubo de Rubik");//Mensaje de la ventana
 init();/*activa, define una serie de estados de ogl, antes de pasar el control del programa a la GLUT.*/
 glutDisplayFunc(display);
 glutReshapeFunc(reshape);
 glutIdleFunc(idle);
 glutKeyboardFunc(keyboard);
 glutSpecialFunc(ArrowKey);
 glutMainLoop();
}