Linea en excel
Graficación
Semestre Agosto-Diciembre 2013
jueves, 21 de noviembre de 2013
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
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
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/
http://opengl.blogspot.es/1235266620/
http://www.dcases.com/68/c-y-opengl-parte-i-inicializacion-de-opengl/
lunes, 11 de noviembre de 2013
martes, 5 de noviembre de 2013
jueves, 31 de octubre de 2013
viernes, 25 de octubre de 2013
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();
}
// 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();
}
Suscribirse a:
Entradas (Atom)