Professional Documents
Culture Documents
#include <stdlib.h>
#include <iostream>
static double t;
static double a = 0;
submenu2 = glutCreateMenu(menu);
glutAddMenuEntry("Rojo", 9);
glutAddMenuEntry("Verde", 10);
glutAddMenuEntry("Azul", 11);
glutAddMenuEntry("Amarillo", 12);
glutAddMenuEntry("Morado", 13);
glutAddMenuEntry("Anaranjado", 14);
glutAddMenuEntry("Blanco", 15);
glutAddMenuEntry("Celeste", 16);
submenu3 = glutCreateMenu(menu);
glutAddMenuEntry("red", 17);
submenu4 = glutCreateMenu(menu);
glutAddMenuEntry("Salir", 18);
case '+':
slices++;
stacks++;
break;
case '-':
if (slices>3 && stacks>3){
slices--;
stacks--;
}
break;
case 'd':
if(xx <0.7){
xx = xx +0.03;
d = -1;
c = -1;
b = 0;
a = t*90.0;
// a = 0.0;
}
break;
case 'a':
if(xx >- 0.7){
xx = xx - 0.03;
d = 1;
c = 1;
b= 0;
a = t*90.0;
// a = t*90.0;
// a = 0.0;
}
break;
case 's':
if(yy >-0.33){
yy = yy -0.03;
zz = zz + 0.04;
b = 1;
d = 1;
c= 0;
a = t*90.0;
// a = 0.0;
}
break;
case 'w':
if(yy<0.65){
yy = yy +0.03;
zz = zz - 0.04;
b= -1;
d = -1;
c = 0;
a = t*90.0;
/// a = 0.0;
}
break;
}
glutPostRedisplay();
}
void casillaAzul(){
glColor3f(0.0,0.0,1.0);
Cubo();
void casillaNegra(){
glColor3f(0.0,0.0,0.0);
Cubo();
void tablero(){
glColor3f(0.0,0.0,0.0);
glBegin(GL_LINE_LOOP);
glVertex3f(1.02,0.2,-1.0);
glVertex3f(1.02,0.2,1.01);
glVertex3f(-1.0,0.2,1.01);
glVertex3f(-1.0,0.2,-1.0);
glEnd();
casillaNegra();
double traslacion1=0.0;
for(int j=0;j<10;j++){
if(j%2==0){
casillaNegra();
for(int i=0;i<9;i++){
if(i%2==0){
glTranslatef(0.2,0.0,0.0);
casillaAzul();
}
else{
glTranslatef(0.2,0.0,0.0);
casillaNegra();
}
traslacion1+=0.2;
}
}
else{
casillaAzul();
for(int i=0;i<9;i++){
if(i%2==0){
glTranslatef(0.2,0.0,0.0);
casillaNegra();
}
else{
glTranslatef(0.2,0.0,0.0);
casillaAzul();
}
traslacion1+=0.2;
}
}
glTranslatef(-traslacion1,0.0,0.0);
traslacion1=0.0;
glTranslatef(0.0,0.0,0.2);
}
}
void relieve(){
glBegin(GL_LINE_LOOP);
glVertex3f(-1.0,0.05,-1.0);
glVertex3f(-1.0,0.05,1);
glVertex3f(1.0,0.05,1.0);
glVertex3f(1.0,0.05,-1.0);
glEnd();
glBegin(GL_POLYGON);
glVertex3f(-1.0,0.05,1.0);
glVertex3f(-1.0,-0.05,1.0);
glVertex3f(1.0,-0.05,1.0);
glVertex3f(1.0,0.05,1.0);
glEnd();
glBegin(GL_POLYGON);
glVertex3f(1.0,0.05,-1.0);
glVertex3f(1.0,0.05,1.0);
glVertex3f(1.0,-0.05,1.0);
glVertex3f(1.0,-0.05,-1.0);
glEnd();
glBegin(GL_POLYGON);
glVertex3f(-1.0,0.05,-1.0);
glVertex3f(1.0,0.05,-1.0);
glVertex3f(1.0,-0.05,-1.0);
glVertex3f(-1.0,-0.05,-1.0);
glEnd();
glBegin(GL_POLYGON);
glVertex3f(-1.0,0.05,1.0);
glVertex3f(-1.0,0.05,-1.0);
glVertex3f(-1.0,-0.05,-1.0);
glVertex3f(-1.0,-0.05,1.0);
glEnd();
void graficos(){
glEnable(GL_CULL_FACE);
glCullFace(GL_BACK);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LESS);
glEnable(GL_LIGHT0);
glEnable(GL_NORMALIZE);
glEnable(GL_COLOR_MATERIAL);
// glEnable(GL_LIGHTING);
t = glutGet(GLUT_ELAPSED_TIME) / 1200.0;
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3d(1,0,1);
glPushMatrix();
glTranslated(xx,yy,zz);
glRotated(60,1,0,0);
glRotated(a,b,c,d);
glutWireSphere(radio,slices,stacks);
glPopMatrix();
glPushMatrix();
glLoadIdentity();
gluLookAt(0,3,3,0,1,1,0,1,0);
glColor3f(0.165, 0.165, 0.165);
relieve();
tablero();
glPopMatrix();
if(value == 1){
glColor3d(1,1,1);
//glColor3d(1,0,1);
glutSwapBuffers();
}
glutInit(&argc, argv);
glutInitWindowSize(700,480);
glutInitWindowPosition(50,50);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
graficos();
glutMainLoop();
return EXIT_SUCCESS;
}