jueves, 17 de octubre de 2013

Cubo Rubick

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

GLfloat escala = 1.25f;
GLfloat angulo = 0.0f;
GLfloat angulo1 = 0.0f;
void reshape(int width, int height)
{
glViewport(0,0,width,height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
 glOrtho(-10,20,-4,10,-8,5);
glMatrixMode(GL_MODELVIEW);
}

void display(){
glClear(GL_COLOR_BUFFER_BIT| GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
angulo-=0.0f;
 glRotatef(angulo, 1.0f, 0.0f, 0.0f);
glRotatef(angulo1, 0.0f, 1.0f, 0.0f);
glTranslatef(-5.5f,-1.5f,1.5f);
//cara frontal
//hilera 1
 glColor3f(1,0,0);
 glBegin(GL_POLYGON);
 glVertex3f(4,0,0);
 glVertex3f(5,0,0);
 glVertex3f(5,1,0);
 glVertex3f(4,1,0);
 glEnd();
 glColor3f(1,0,0);
 glBegin(GL_POLYGON);
 glVertex3f(5,0,0);
 glVertex3f(6,0,0);
 glVertex3f(6,1,0);
 glVertex3f(5,1,0);
 glEnd();
 glColor3f(1,0,0);
 glBegin(GL_POLYGON);
 glVertex3f(6,0,0);
 glVertex3f(7,0,0);
 glVertex3f(7,1,0);
 glVertex3f(6,1,0);
 glEnd();
//hilera2
 glColor3f(1,0,0);
 glBegin(GL_POLYGON);
 glVertex3f(4,1,0);
 glVertex3f(5,1,0);
 glVertex3f(5,2,0);
 glVertex3f(4,2,0);
 glEnd();
 glColor3f(1,0,0);
 glBegin(GL_POLYGON);
 glVertex3f(5,1,0);
 glVertex3f(6,1,0);
 glVertex3f(6,2,0);
 glVertex3f(5,2,0);
 glEnd();
 glColor3f(1,0,0);
 glBegin(GL_POLYGON);
 glVertex3f(6,1,0);
 glVertex3f(7,1,0);
 glVertex3f(7,2,0);
 glVertex3f(6,2,0);
 glEnd();
//hilera3
 glColor3f(1,0,0);
 glBegin(GL_POLYGON);
 glVertex3f(4,2,0);
 glVertex3f(5,2,0);
 glVertex3f(5,3,0);
 glVertex3f(4,3,0);
 glEnd();
 glColor3f(1,0,0);
 glBegin(GL_POLYGON);
 glVertex3f(5,2,0);
 glVertex3f(6,2,0);
 glVertex3f(6,3,0);
 glVertex3f(5,3,0);
 glEnd();
 glColor3f(1,0,0);
 glBegin(GL_POLYGON);
 glVertex3f(6,2,0);
 glVertex3f(7,2,0);
 glVertex3f(7,3,0);
 glVertex3f(6,3,0);
 glEnd();
 //cara superior
 //hilera1
 glColor3f(1,1,1);
 glBegin(GL_POLYGON);
 glVertex3f(4,3,0);
 glVertex3f(5,3,0);
 glVertex3f(5,3,-1);
 glVertex3f(4,3,-1);
 glEnd();
 glColor3f(1,1,1);
 glBegin(GL_POLYGON);
 glVertex3f(5,3,0);
 glVertex3f(6,3,0);
 glVertex3f(6,3,-1);
 glVertex3f(5,3,-1);
 glEnd();
 glColor3f(1,1,1);
 glBegin(GL_POLYGON);
 glVertex3f(6,3,0);
 glVertex3f(7,3,0);
 glVertex3f(7,3,-1);
 glVertex3f(6,3,-1);
 glEnd();
//hilera2
 glColor3f(1,1,1);
 glBegin(GL_POLYGON);
 glVertex3f(4,3,-1);
 glVertex3f(5,3,-1);
 glVertex3f(5,3,-2);
 glVertex3f(4,3,-2);
 glEnd();
 glColor3f(1,1,1);
 glBegin(GL_POLYGON);
 glVertex3f(5,3,-1);
 glVertex3f(6,3,-1);
 glVertex3f(6,3,-2);
 glVertex3f(5,3,-2);
 glEnd();
 glColor3f(1,1,1);
 glBegin(GL_POLYGON);
 glVertex3f(6,3,-1);
 glVertex3f(7,3,-1);
 glVertex3f(7,3,-2);
 glVertex3f(6,3,-2);
 glEnd();
 //hilera3
 glColor3f(1,1,1);
 glBegin(GL_POLYGON);
 glVertex3f(4,3,-2);
 glVertex3f(5,3,-2);
 glVertex3f(5,3,-3);
 glVertex3f(4,3,-3);
 glEnd();
 glColor3f(1,1,1);
 glBegin(GL_POLYGON);
 glVertex3f(5,3,-2);
 glVertex3f(6,3,-2);
 glVertex3f(6,3,-3);
 glVertex3f(5,3,-3);
 glEnd();
 glColor3f(1,1,1);
 glBegin(GL_POLYGON);
 glVertex3f(6,3,-2);
 glVertex3f(7,3,-2);
 glVertex3f(7,3,-3);
 glVertex3f(6,3,-3);
 glEnd();
//cara posterior
 //hilera1
 glColor3f(1,.5,0);
 glBegin(GL_POLYGON);
 glVertex3f(4,0,-3);
 glVertex3f(5,0,-3);
 glVertex3f(5,1,-3);
 glVertex3f(4,1,-3);
 glEnd();
 glColor3f(1,.5,0);
 glBegin(GL_POLYGON);
 glVertex3f(5,0,-3);
 glVertex3f(6,0,-3);
 glVertex3f(6,1,-3);
 glVertex3f(5,1,-3);
 glEnd();
 glColor3f(1,.5,0);
 glBegin(GL_POLYGON);
 glVertex3f(6,0,-3);
 glVertex3f(7,0,-3);
 glVertex3f(7,1,-3);
 glVertex3f(6,1,-3);
 glEnd();
//hilera2
 glColor3f(1,.5,0);
 glBegin(GL_POLYGON);
 glVertex3f(4,1,-3);
 glVertex3f(5,1,-3);
 glVertex3f(5,2,-3);
 glVertex3f(4,2,-3);
 glEnd();
 glColor3f(1,.5,0);
 glBegin(GL_POLYGON);
 glVertex3f(5,1,-3);
 glVertex3f(6,1,-3);
 glVertex3f(6,2,-3);
 glVertex3f(5,2,-3);
 glEnd();
 glColor3f(1,.5,0);
 glBegin(GL_POLYGON);
 glVertex3f(6,1,-3);
 glVertex3f(7,1,-3);
 glVertex3f(7,2,-3);
 glVertex3f(6,2,-3);
 glEnd();
//hilera3
 glColor3f(1,.5,0);
 glBegin(GL_POLYGON);
 glVertex3f(4,2,-3);
 glVertex3f(5,2,-3);
 glVertex3f(5,3,-3);
 glVertex3f(4,3,-3);
 glEnd();
 glColor3f(1,.5,0);
 glBegin(GL_POLYGON);
 glVertex3f(5,2,-3);
 glVertex3f(6,2,-3);
 glVertex3f(6,3,-3);
 glVertex3f(5,3,-3);
 glEnd();
 glColor3f(1,.5,0);
 glBegin(GL_POLYGON);
 glVertex3f(6,2,-3);
 glVertex3f(7,2,-3);
 glVertex3f(7,3,-3);
 glVertex3f(6,3,-3);
 glEnd();
 //cara inferior
 //hilera1
 glColor3f(1,1,0);
 glBegin(GL_POLYGON);
 glVertex3f(4,0,0);
 glVertex3f(5,0,0);
 glVertex3f(5,0,-1);
 glVertex3f(4,0,-1);
 glEnd();
 glColor3f(1,1,0);
 glBegin(GL_POLYGON);
 glVertex3f(5,0,0);
 glVertex3f(6,0,0);
 glVertex3f(6,0,-1);
 glVertex3f(5,0,-1);
 glEnd();
 glColor3f(1,1,0);
 glBegin(GL_POLYGON);
 glVertex3f(6,0,0);
 glVertex3f(7,0,0);
 glVertex3f(7,0,-1);
 glVertex3f(6,0,-1);
 glEnd();
//hilera2
 glColor3f(1,1,0);
 glBegin(GL_POLYGON);
 glVertex3f(4,0,-1);
 glVertex3f(5,0,-1);
 glVertex3f(5,0,-2);
 glVertex3f(4,0,-2);
 glEnd();
 glColor3f(1,1,0);
 glBegin(GL_POLYGON);
 glVertex3f(5,0,-1);
 glVertex3f(6,0,-1);
 glVertex3f(6,0,-2);
 glVertex3f(5,0,-2);
 glEnd();
 glColor3f(1,1,0);
 glBegin(GL_POLYGON);
 glVertex3f(6,0,-1);
 glVertex3f(7,0,-1);
 glVertex3f(7,0,-2);
 glVertex3f(6,0,-2);
 glEnd();
 //hilera3
 glColor3f(1,1,0);
 glBegin(GL_POLYGON);
 glVertex3f(4,0,-2);
 glVertex3f(5,0,-2);
 glVertex3f(5,0,-3);
 glVertex3f(4,0,-3);
 glEnd();
 glColor3f(1,1,0);
 glBegin(GL_POLYGON);
 glVertex3f(5,0,-2);
 glVertex3f(6,0,-2);
 glVertex3f(6,0,-3);
 glVertex3f(5,0,-3);
 glEnd();
 glColor3f(1,1,0);
 glBegin(GL_POLYGON);
 glVertex3f(6,0,-2);
 glVertex3f(7,0,-2);
 glVertex3f(7,0,-3);
 glVertex3f(6,0,-3);
 glEnd();
 //cara derecha
//hilera 1
 glColor3f(0,0,1);
 glBegin(GL_POLYGON);
 glVertex3f(7,0,0);
 glVertex3f(7,0,-1);
 glVertex3f(7,1,-1);
 glVertex3f(7,1,0);
 glEnd();
 glColor3f(0,0,1);
 glBegin(GL_POLYGON);
 glVertex3f(7,0,-1);
 glVertex3f(7,0,-2);
 glVertex3f(7,1,-2);
 glVertex3f(7,1,-1);
 glEnd();
 glColor3f(0,0,1);
 glBegin(GL_POLYGON);
 glVertex3f(7,0,-2);
 glVertex3f(7,0,-3);
 glVertex3f(7,1,-3);
 glVertex3f(7,1,-2);
 glEnd();
//hilera2
 glColor3f(0,0,1);
 glBegin(GL_POLYGON);
 glVertex3f(7,1,0);
 glVertex3f(7,1,-1);
 glVertex3f(7,2,-1);
 glVertex3f(7,2,-0);
 glEnd();
 glColor3f(0,0,1);
 glBegin(GL_POLYGON);
 glVertex3f(7,1,-1);
 glVertex3f(7,1,-2);
 glVertex3f(7,2,-2);
 glVertex3f(7,2,-1);
 glEnd();
 glColor3f(0,0,1);
 glBegin(GL_POLYGON);
 glVertex3f(7,1,-2);
 glVertex3f(7,1,-3);
 glVertex3f(7,2,-3);
 glVertex3f(7,2,-2);
 glEnd();
//hilera3
 glColor3f(0,0,1);
 glBegin(GL_POLYGON);
 glVertex3f(7,2,0);
 glVertex3f(7,2,-1);
 glVertex3f(7,3,-1);
 glVertex3f(7,3,0);
 glEnd();
 glColor3f(0,0,1);
 glBegin(GL_POLYGON);
 glVertex3f(7,2,-1);
 glVertex3f(7,2,-2);
 glVertex3f(7,3,-2);
 glVertex3f(7,3,-1);
 glEnd();
 glColor3f(0,0,1);
 glBegin(GL_POLYGON);
 glVertex3f(7,2,-2);
 glVertex3f(7,2,-3);
 glVertex3f(7,3,-3);
 glVertex3f(7,3,-2);
 glEnd();
//cara izquierda
//hilera 1
 glColor3f(0,1,0);
 glBegin(GL_POLYGON);
 glVertex3f(4,0,0);
 glVertex3f(4,0,-1);
 glVertex3f(4,1,-1);
 glVertex3f(4,1,0);
 glEnd();
 glColor3f(0,1,0);
 glBegin(GL_POLYGON);
 glVertex3f(4,0,-1);
 glVertex3f(4,0,-2);
 glVertex3f(4,1,-2);
 glVertex3f(4,1,-1);
 glEnd();
 glColor3f(0,1,0);
 glBegin(GL_POLYGON);
 glVertex3f(4,0,-2);
 glVertex3f(4,0,-3);
 glVertex3f(4,1,-3);
 glVertex3f(4,1,-2);
 glEnd();
//hilera2
 glColor3f(0,1,0);
 glBegin(GL_POLYGON);
 glVertex3f(4,1,0);
 glVertex3f(4,1,-1);
 glVertex3f(4,2,-1);
 glVertex3f(4,2,-0);
 glEnd();
 glColor3f(0,1,0);
 glBegin(GL_POLYGON);
 glVertex3f(4,1,-1);
 glVertex3f(4,1,-2);
 glVertex3f(4,2,-2);
 glVertex3f(4,2,-1);
 glEnd();
 glColor3f(0,1,0);
 glBegin(GL_POLYGON);
 glVertex3f(4,1,-2);
 glVertex3f(4,1,-3);
 glVertex3f(4,2,-3);
 glVertex3f(4,2,-2);
 glEnd();
//hilera3
 glColor3f(0,1,0);
 glBegin(GL_POLYGON);
 glVertex3f(4,2,0);
 glVertex3f(4,2,-1);
 glVertex3f(4,3,-1);
 glVertex3f(4,3,0);
 glEnd();
 glColor3f(0,1,0);
 glBegin(GL_POLYGON);
 glVertex3f(4,2,-1);
 glVertex3f(4,2,-2);
 glVertex3f(4,3,-2);
 glVertex3f(4,3,-1);
 glEnd();
 glColor3f(0,1,0);
 glBegin(GL_POLYGON);
 glVertex3f(4,2,-2);
 glVertex3f(4,2,-3);
 glVertex3f(4,3,-3);
 glVertex3f(4,3,-2);
 glEnd();
 //lineas-----------------------------------------------------------------
 //cara frontal
//hilera 1
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(4,0,0);
 glVertex3f(5,0,0);
 glVertex3f(5,1,0);
 glVertex3f(4,1,0);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(5,0,0);
 glVertex3f(6,0,0);
 glVertex3f(6,1,0);
 glVertex3f(5,1,0);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(6,0,0);
 glVertex3f(7,0,0);
 glVertex3f(7,1,0);
 glVertex3f(6,1,0);
 glEnd();
//hilera2
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(4,1,0);
 glVertex3f(5,1,0);
 glVertex3f(5,2,0);
 glVertex3f(4,2,0);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(5,1,0);
 glVertex3f(6,1,0);
 glVertex3f(6,2,0);
 glVertex3f(5,2,0);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(6,1,0);
 glVertex3f(7,1,0);
 glVertex3f(7,2,0);
 glVertex3f(6,2,0);
 glEnd();
//hilera3
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(4,2,0);
 glVertex3f(5,2,0);
 glVertex3f(5,3,0);
 glVertex3f(4,3,0);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(5,2,0);
 glVertex3f(6,2,0);
 glVertex3f(6,3,0);
 glVertex3f(5,3,0);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(6,2,0);
 glVertex3f(7,2,0);
 glVertex3f(7,3,0);
 glVertex3f(6,3,0);
 glEnd();
 //cara superior
 //hilera1
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(4,3,0);
 glVertex3f(5,3,0);
 glVertex3f(5,3,-1);
 glVertex3f(4,3,-1);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(5,3,0);
 glVertex3f(6,3,0);
 glVertex3f(6,3,-1);
 glVertex3f(5,3,-1);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(6,3,0);
 glVertex3f(7,3,0);
 glVertex3f(7,3,-1);
 glVertex3f(6,3,-1);
 glEnd();
//hilera2
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(4,3,-1);
 glVertex3f(5,3,-1);
 glVertex3f(5,3,-2);
 glVertex3f(4,3,-2);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(5,3,-1);
 glVertex3f(6,3,-1);
 glVertex3f(6,3,-2);
 glVertex3f(5,3,-2);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(6,3,-1);
 glVertex3f(7,3,-1);
 glVertex3f(7,3,-2);
 glVertex3f(6,3,-2);
 glEnd();
 //hilera3
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(4,3,-2);
 glVertex3f(5,3,-2);
 glVertex3f(5,3,-3);
 glVertex3f(4,3,-3);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(5,3,-2);
 glVertex3f(6,3,-2);
 glVertex3f(6,3,-3);
 glVertex3f(5,3,-3);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(6,3,-2);
 glVertex3f(7,3,-2);
 glVertex3f(7,3,-3);
 glVertex3f(6,3,-3);
 glEnd();
//cara posterior
 //hilera1
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(4,0,-3);
 glVertex3f(5,0,-3);
 glVertex3f(5,1,-3);
 glVertex3f(4,1,-3);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(5,0,-3);
 glVertex3f(6,0,-3);
 glVertex3f(6,1,-3);
 glVertex3f(5,1,-3);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(6,0,-3);
 glVertex3f(7,0,-3);
 glVertex3f(7,1,-3);
 glVertex3f(6,1,-3);
 glEnd();
//hilera2
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(4,1,-3);
 glVertex3f(5,1,-3);
 glVertex3f(5,2,-3);
 glVertex3f(4,2,-3);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(5,1,-3);
 glVertex3f(6,1,-3);
 glVertex3f(6,2,-3);
 glVertex3f(5,2,-3);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(6,1,-3);
 glVertex3f(7,1,-3);
 glVertex3f(7,2,-3);
 glVertex3f(6,2,-3);
 glEnd();
//hilera3
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(4,2,-3);
 glVertex3f(5,2,-3);
 glVertex3f(5,3,-3);
 glVertex3f(4,3,-3);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(5,2,-3);
 glVertex3f(6,2,-3);
 glVertex3f(6,3,-3);
 glVertex3f(5,3,-3);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(6,2,-3);
 glVertex3f(7,2,-3);
 glVertex3f(7,3,-3);
 glVertex3f(6,3,-3);
 glEnd();
 //cara inferior
 //hilera1
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(4,0,0);
 glVertex3f(5,0,0);
 glVertex3f(5,0,-1);
 glVertex3f(4,0,-1);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(5,0,0);
 glVertex3f(6,0,0);
 glVertex3f(6,0,-1);
 glVertex3f(5,0,-1);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(6,0,0);
 glVertex3f(7,0,0);
 glVertex3f(7,0,-1);
 glVertex3f(6,0,-1);
 glEnd();
//hilera2
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(4,0,-1);
 glVertex3f(5,0,-1);
 glVertex3f(5,0,-2);
 glVertex3f(4,0,-2);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(5,0,-1);
 glVertex3f(6,0,-1);
 glVertex3f(6,0,-2);
 glVertex3f(5,0,-2);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(6,0,-1);
 glVertex3f(7,0,-1);
 glVertex3f(7,0,-2);
 glVertex3f(6,0,-2);
 glEnd();
 //hilera3
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(4,0,-2);
 glVertex3f(5,0,-2);
 glVertex3f(5,0,-3);
 glVertex3f(4,0,-3);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(5,0,-2);
 glVertex3f(6,0,-2);
 glVertex3f(6,0,-3);
 glVertex3f(5,0,-3);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(6,0,-2);
 glVertex3f(7,0,-2);
 glVertex3f(7,0,-3);
 glVertex3f(6,0,-3);
 glEnd();
 //cara derecha
//hilera 1
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(7,0,0);
 glVertex3f(7,0,-1);
 glVertex3f(7,1,-1);
 glVertex3f(7,1,0);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(7,0,-1);
 glVertex3f(7,0,-2);
 glVertex3f(7,1,-2);
 glVertex3f(7,1,-1);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(7,0,-2);
 glVertex3f(7,0,-3);
 glVertex3f(7,1,-3);
 glVertex3f(7,1,-2);
 glEnd();
//hilera2
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(7,1,0);
 glVertex3f(7,1,-1);
 glVertex3f(7,2,-1);
 glVertex3f(7,2,-0);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(7,1,-1);
 glVertex3f(7,1,-2);
 glVertex3f(7,2,-2);
 glVertex3f(7,2,-1);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(7,1,-2);
 glVertex3f(7,1,-3);
 glVertex3f(7,2,-3);
 glVertex3f(7,2,-2);
 glEnd();
//hilera3
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(7,2,0);
 glVertex3f(7,2,-1);
 glVertex3f(7,3,-1);
 glVertex3f(7,3,0);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(7,2,-1);
 glVertex3f(7,2,-2);
 glVertex3f(7,3,-2);
 glVertex3f(7,3,-1);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(7,2,-2);
 glVertex3f(7,2,-3);
 glVertex3f(7,3,-3);
 glVertex3f(7,3,-2);
 glEnd();
//cara izquierda
//hilera 1
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(4,0,0);
 glVertex3f(4,0,-1);
 glVertex3f(4,1,-1);
 glVertex3f(4,1,0);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(4,0,-1);
 glVertex3f(4,0,-2);
 glVertex3f(4,1,-2);
 glVertex3f(4,1,-1);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(4,0,-2);
 glVertex3f(4,0,-3);
 glVertex3f(4,1,-3);
 glVertex3f(4,1,-2);
 glEnd();
//hilera2
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(4,1,0);
 glVertex3f(4,1,-1);
 glVertex3f(4,2,-1);
 glVertex3f(4,2,-0);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(4,1,-1);
 glVertex3f(4,1,-2);
 glVertex3f(4,2,-2);
 glVertex3f(4,2,-1);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(4,1,-2);
 glVertex3f(4,1,-3);
 glVertex3f(4,2,-3);
 glVertex3f(4,2,-2);
 glEnd();
//hilera3
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(4,2,0);
 glVertex3f(4,2,-1);
 glVertex3f(4,3,-1);
 glVertex3f(4,3,0);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(4,2,-1);
 glVertex3f(4,2,-2);
 glVertex3f(4,3,-2);
 glVertex3f(4,3,-1);
 glEnd();
 glColor3f(0,0,0);
 glBegin(GL_LINE_LOOP);
 glVertex3f(4,2,-2);
 glVertex3f(4,2,-3);
 glVertex3f(4,3,-3);
 glVertex3f(4,3,-2);
 glEnd();


glFlush();
glutSwapBuffers();
}
void idle()
{
display();
}
void init()
{
glClearColor(0,0,0,0);
}

void handleSpecialKeypress(int key, int x, int y) {
 switch (key) {
 case GLUT_KEY_UP:
        angulo-=10.0f;
  glRotatef(angulo, 1.0f, 0.0f, 0.0f);
 
 
  break;
 case GLUT_KEY_DOWN:

        angulo+=10.0f;
  glRotatef(angulo, 1.0f, 0.0f, 0.0f);
 
  break;
  case GLUT_KEY_LEFT:
        angulo1-=10.0f;
  glRotatef(angulo1, 0.0f, 1.0f, 0.0f);
 
 
  break;
 case GLUT_KEY_RIGHT:

        angulo1+=10.0f;
  glRotatef(angulo1, 0.0f, 1.0f, 0.0f);
 
  break;
 }
}

int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowPosition(500,60);
glutInitWindowSize(600,500);
glutCreateWindow("Cubo Rubick");
init();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
   glEnable(GL_DEPTH_TEST);
glutIdleFunc(idle);
glutSpecialFunc(handleSpecialKeypress);
glutMainLoop();

}



No hay comentarios:

Publicar un comentario