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();
}
No hay comentarios:
Publicar un comentario