Código Menú|Animación Israel
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <GL/glut.h>
#define PI 3.141592653
float rotar = 0,inc=0.1, ry=0, rx=0, ang=0,botar=1;
float r=1,g=0,b=0;
int figura=0;
float r1=40, r2=25, r3=60, r4=30, r5=18, dx, dy;
void dibujaCuadro(void) {
glColor3f(r, g, b);
glBegin(GL_QUADS);
glVertex2f(5, 5);
glVertex2f(-5, 5);
glVertex2f(-5, -5);
glVertex2f(5, -5);
glEnd();
}
void circulo1 (void){
glColor3f(0,0,0);
glBegin(GL_POLYGON);
for(float i=0.0; i<2*PI; i+=0.01){
dx=r1*cos(i);
dy=r1*sin(i)-75;
glVertex2f(dx, dy);
}
glEnd();
}
void circulo2 (void){
glColor3f(0,0,0);
glBegin(GL_POLYGON);
for(float i=0.0; i<2*PI; i+=0.01){
dx=r2*cos(i);
dy=r2*sin(i);
glVertex2f(dx, dy);
}
glEnd();
}
void circulo3 (void){
glColor3f(0,0,0);
glBegin(GL_POLYGON);
for(float i=0.0; i<2*PI; i+=0.01){
dx=r2*cos(i);
dy=r2*sin(i);
glVertex2f(dx, dy);
}
glEnd();
}
void circuloBeats (void){
glColor3f(1,0,0);
glBegin(GL_POLYGON);
for(float i=0.0; i<2*PI; i+=0.01){
dx=r3*cos(i)-40;
dy=r3*sin(i)+100;
glVertex2f(dx, dy);
}
glEnd();
}
void circuloB1 (void){
glColor3f(1,1,1);
glBegin(GL_POLYGON);
for(float i=0.0; i<2*PI; i+=0.01){
dx=r4*cos(i)-40;
dy=r4*sin(i)+100;
glVertex2f(dx, dy);
}
glEnd();
}
void pataB (void){
glColor3f(1,1,1);
glBegin(GL_QUADS);
glVertex2f(0,0);
glVertex2f(0,-70);
glVertex2f(10,-70);
glVertex2f(10,0);
glEnd();
}
void circuloB2(void){
glColor3f(1,0,0);
glBegin(GL_POLYGON);
for(float i=0.0; i<2*PI; i+=0.01){
dx=r5*cos(i);
dy=r5*sin(i);
glVertex2f(dx, dy);
}
glEnd();
}
void mickey(void){
circulo1();
glTranslatef(-40,-27,0);
circulo2();
glTranslatef(80,0,0);
circulo3();
}
void beats (void){
circuloBeats();
circuloB1();
glTranslatef(-69,162,0);
pataB();
glTranslatef(29,-62,0);
circuloB2();
}
void dibujaJamesHetfield(void){
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_QUADS);
//CABELLO 1
glColor3f(1, 1, 0);
glVertex2f(4,29);
glVertex2f(4,13);
glVertex2f(18,13);
glVertex2f(18,29);
//CABELLO 2
//glBegin(GL_QUADS);
glColor3f(1, 1, 0);
glVertex2f(3,28);
glVertex2f(3,12);
glVertex2f(19,12);
glVertex2f(19,28);
//CABELLO 3
//glBegin(GL_QUADS);
glColor3f(1, 1, 0);
glVertex2f(3,27);
glVertex2f(3,14);
glVertex2f(20,14);
glVertex2f(20,27);
//CABELLO 4
//glBegin(GL_QUADS);
glColor3f(1, 1, 0);
glVertex2f(2,26);
glVertex2f(2,12);
glVertex2f(21,12);
glVertex2f(21,26);
//CABELLO 5
//glBegin(GL_QUADS);
glColor3f(1, 1, 0);
glVertex2f(1,19);
glVertex2f(1,16);
glVertex2f(4,16);
glVertex2f(4,19);
//CABELLO 6
//glBegin(GL_QUADS);
glColor3f(1, 1, 0);
glVertex2f(1,15);
glVertex2f(1,13);
glVertex2f(9,13);
glVertex2f(9,15);
//CABELLO 7
//glBegin(GL_QUADS);
glColor3f(1, 1, 0);
glVertex2f(3,14);
glVertex2f(3,11);
glVertex2f(5,11);
glVertex2f(5,14);
//CARA 1
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(7,24);
glVertex2f(7,23);
glVertex2f(8,23);
glVertex2f(8,24);
//CARA 2
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(8,23);
glVertex2f(8,22);
glVertex2f(10,22);
glVertex2f(10,23);
//CARA 3
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(9,22);
glVertex2f(9,17);
glVertex2f(14,17);
glVertex2f(14,22);
//CARA 4
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(5,22);
glVertex2f(5,20);
glVertex2f(7,20);
glVertex2f(7,22);
//CARA 5
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(7,21);
glVertex2f(7,20);
glVertex2f(9,20);
glVertex2f(9,21);
//CARA 6
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(8,20);
glVertex2f(8,16);
glVertex2f(9,16);
glVertex2f(9,20);
//CARA 7
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(5,18);
glVertex2f(5,15);
glVertex2f(8,15);
glVertex2f(8,18);
//CARA 8
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(4,17);
glVertex2f(4,16);
glVertex2f(5,16);
glVertex2f(5,17);
//CARA 9
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(11,17);
glVertex2f(11,13);
glVertex2f(12,13);
glVertex2f(12,17);
//CARA 10
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(9,16);
glVertex2f(9,14);
glVertex2f(11,14);
glVertex2f(11,16);
//CARA 11
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(12,16);
glVertex2f(12,14);
glVertex2f(14,14);
glVertex2f(14,16);
//CARA 12
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(10,14);
glVertex2f(10,13);
glVertex2f(13,13);
glVertex2f(13,14);
//CARA 13
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(11,25);
glVertex2f(11,22);
glVertex2f(12,22);
glVertex2f(12,25);
//CARA 14
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(12,23);
glVertex2f(12,22);
glVertex2f(16,22);
glVertex2f(16,23);
//CARA 15
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(13,24);
glVertex2f(13,23);
glVertex2f(14,23);
glVertex2f(14,24);
//CARA 16
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(15,24);
glVertex2f(15,23);
glVertex2f(16,23);
glVertex2f(16,24);
//CARA 17
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(14,21);
glVertex2f(14,16);
glVertex2f(15,16);
glVertex2f(15,21);
//CARA 18
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(15,18);
glVertex2f(15,15);
glVertex2f(18,15);
glVertex2f(18,18);
//CARA 19
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(15,21);
glVertex2f(15,20);
glVertex2f(18,20);
glVertex2f(18,21);
//CARA 1
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(16,22);
glVertex2f(16,21);
glVertex2f(18,21);
glVertex2f(18,22);
//OJO IZQUIERDO
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(5,20);
glVertex2f(5,18);
glVertex2f(8,18);
glVertex2f(8,20);
//OJO DERECHO
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(15,20);
glVertex2f(15,18);
glVertex2f(18,18);
glVertex2f(18,20);
//CEJA IZQUIERDA 1
//glBegin(GL_QUADS);
glColor3f(0.5, 0.5, 0.5);
glVertex2f(5,23);
glVertex2f(5,22);
glVertex2f(7,22);
glVertex2f(7,23);
//CEJA IZQUIERDA 2
//glBegin(GL_QUADS);
glColor3f(0.5, 0.5, 0.5);
glVertex2f(7,22);
glVertex2f(7,21);
glVertex2f(9,21);
glVertex2f(9,22);
//CEJA DERECHA 1
//glBegin(GL_QUADS);
glColor3f(0.5, 0.5, 0.5);
glVertex2f(14,22);
glVertex2f(14,21);
glVertex2f(16,21);
glVertex2f(16,22);
//CEJA DERECHA 2
//glBegin(GL_QUADS);
glColor3f(0.5, 0.5, 0.5);
glVertex2f(16,23);
glVertex2f(16,22);
glVertex2f(18,22);
glVertex2f(18,23);
//COLLAR
//glBegin(GL_QUADS);
glColor3f(0.5, 0.5, 0.5);
glVertex2f(11,13);
glVertex2f(11,12);
glVertex2f(12,12);
glVertex2f(12,13);
//BRAZO IZQUIERDO 1
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(6,13);
glVertex2f(6,11);
glVertex2f(9,11);
glVertex2f(9,13);
//BRAZO IZQUIERDO 2
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(6,11);
glVertex2f(6,10);
glVertex2f(8,10);
glVertex2f(8,11);
//BRAZO IZQUIERDO 3
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(6,10);
glVertex2f(6,9);
glVertex2f(7,9);
glVertex2f(7,10);
//BRAZO DERECHO 1
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(14,13);
glVertex2f(14,11);
glVertex2f(16,11);
glVertex2f(16,13);
//BRAZO DERECHO 2
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(14,11);
glVertex2f(14,10);
glVertex2f(15,10);
glVertex2f(15,11);
//MANO IZQUIERDA 1
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(7,8);
glVertex2f(7,7);
glVertex2f(8,7);
glVertex2f(8,8);
//MANO IZQUIERDA 2
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(8,9);
glVertex2f(8,6);
glVertex2f(9,6);
glVertex2f(9,9);
//MANO IZQUIERDA 3
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(9,10);
glVertex2f(9,6);
glVertex2f(10,6);
glVertex2f(10,10);
//MANO IZQUIERDA 4
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(10,9);
glVertex2f(10,7);
glVertex2f(11,7);
glVertex2f(11,9);
//MANO DERECHA
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(16,11);
glVertex2f(16,9);
glVertex2f(18,9);
glVertex2f(18,11);
//CUERPO 1
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(9,12);
glVertex2f(9,10);
glVertex2f(14,10);
glVertex2f(14,12);
//CUERPO 2
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(9,13);
glVertex2f(9,12);
glVertex2f(11,12);
glVertex2f(11,13);
//CUERPO 3
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(12,13);
glVertex2f(12,12);
glVertex2f(14,12);
glVertex2f(14,13);
//CUERPO 4
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(9,14);
glVertex2f(9,13);
glVertex2f(10,13);
glVertex2f(10,14);
//CUERPO 4
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(13,14);
glVertex2f(13,13);
glVertex2f(14,13);
glVertex2f(14,14);
//CUERPO 5
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(8,11);
glVertex2f(8,9);
glVertex2f(9,9);
glVertex2f(9,11);
//CUERPO 6
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(7,10);
glVertex2f(7,8);
glVertex2f(8,8);
glVertex2f(8,10);
//CUERPO 7
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(10,10);
glVertex2f(10,9);
glVertex2f(11,9);
glVertex2f(11,10);
//CUERPO 8
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(12,10);
glVertex2f(12,9);
glVertex2f(13,9);
glVertex2f(13,10);
//GUITARRA 1
//glBegin(GL_QUADS);
glColor3f(1, 1, 1);
glVertex2f(5,9);
glVertex2f(5,7);
glVertex2f(7,7);
glVertex2f(7,9);
//GUITARRA 2
//glBegin(GL_QUADS);
glColor3f(1, 1, 1);
glVertex2f(6,7);
glVertex2f(6,5);
glVertex2f(7,5);
glVertex2f(7,7);
//GUITARRA 3
//glBegin(GL_QUADS);
glColor3f(1, 1, 1);
glVertex2f(7,7);
glVertex2f(7,6);
glVertex2f(8,6);
glVertex2f(8,7);
//GUITARRA 4
//glBegin(GL_QUADS);
glColor3f(1, 1, 1);
glVertex2f(7,5);
glVertex2f(7,4);
glVertex2f(8,4);
glVertex2f(8,5);
//GUITARRA 5
//glBegin(GL_QUADS);
glColor3f(1, 1, 1);
glVertex2f(8,6);
glVertex2f(8,3);
glVertex2f(9,3);
glVertex2f(9,6);
//GUITARRA 6
//glBegin(GL_QUADS);
glColor3f(1, 1, 1);
glVertex2f(9,5);
glVertex2f(9,3);
glVertex2f(10,3);
glVertex2f(10,5);
//GUITARRA 7
//glBegin(GL_QUADS);
glColor3f(1, 1, 1);
glVertex2f(10,7);
glVertex2f(10,4);
glVertex2f(11,4);
glVertex2f(11,7);
//GUITARRA 8
//glBegin(GL_QUADS);
glColor3f(1, 1, 1);
glVertex2f(11,7);
glVertex2f(11,5);
glVertex2f(12,5);
glVertex2f(12,7);
//GUITARRA 9
//glBegin(GL_QUADS);
glColor3f(1, 1, 1);
glVertex2f(12,7);
glVertex2f(12,6);
glVertex2f(15,6);
glVertex2f(15,7);
//GUITARRA 10
//glBegin(GL_QUADS);
glColor3f(1, 1, 1);
glVertex2f(13,8);
glVertex2f(13,7);
glVertex2f(14,7);
glVertex2f(14,8);
//GUITARRA 11
//glBegin(GL_QUADS);
glColor3f(1, 1, 1);
glVertex2f(11,10);
glVertex2f(11,8);
glVertex2f(12,8);
glVertex2f(12,10);
//BRAZO GUITARRA 1
//glBegin(GL_QUADS);
glColor3f(0.3, 0.3, 0.3);
glVertex2f(11,8);
glVertex2f(11,7);
glVertex2f(13,7);
glVertex2f(13,8);
//BRAZO GUITARRA 2
//glBegin(GL_QUADS);
glColor3f(0.3, 0.3, 0.3);
glVertex2f(12,9);
glVertex2f(12,8);
glVertex2f(14,8);
glVertex2f(14,9);
//BRAZO GUITARRA 3
//glBegin(GL_QUADS);
glColor3f(0.3, 0.3, 0.3);
glVertex2f(13,10);
glVertex2f(13,9);
glVertex2f(16,9);
glVertex2f(16,10);
//BRAZO GUITARRA 4
//glBegin(GL_QUADS);
glColor3f(0.3, 0.3, 0.3);
glVertex2f(17,12);
glVertex2f(17,11);
glVertex2f(19,11);
glVertex2f(19,12);
//BRAZO GUITARRA 5
//glBegin(GL_QUADS);
glColor3f(0.3, 0.3, 0.3);
glVertex2f(15,11);
glVertex2f(15,10);
glVertex2f(16,10);
glVertex2f(16,11);
//AFINADOR
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(19,12);
glVertex2f(19,11);
glVertex2f(23,11);
glVertex2f(23,12);
//AFINADOR
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(20,13);
glVertex2f(20,12);
glVertex2f(22,12);
glVertex2f(22,13);
//DETALLES GUITARRA 1
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(5,7);
glVertex2f(5,6);
glVertex2f(6,6);
glVertex2f(6,7);
//DETALLES GUITARRA 2
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(7,6);
glVertex2f(7,5);
glVertex2f(8,5);
glVertex2f(8,6);
//DETALLES GUITARRA 3
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(9,6);
glVertex2f(9,5);
glVertex2f(10,5);
glVertex2f(10,6);
//DETALLES GUITARRA 3
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(14,8);
glVertex2f(14,7);
glVertex2f(15,7);
glVertex2f(15,8);
//PIERNA IZQUIERDA 1
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(7,4);
glVertex2f(7,3);
glVertex2f(8,3);
glVertex2f(8,4);
//PIERNA IZQUIERDA 2
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(6,3);
glVertex2f(6,1);
glVertex2f(10,1);
glVertex2f(10,3);
//PIERNA IZQUIERDA 3
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(5,2);
glVertex2f(5,1);
glVertex2f(6,1);
glVertex2f(6,2);
//PIERNA DERECHA 1
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(12,6);
glVertex2f(12,5);
glVertex2f(15,5);
glVertex2f(15,6);
//PIERNA DERECHA 2
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(12,5);
glVertex2f(12,4);
glVertex2f(16,4);
glVertex2f(16,5);
//PIERNA DERECHA 3
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(13,4);
glVertex2f(13,1);
glVertex2f(16,1);
glVertex2f(16,4);
//PIERNA DERECHA 4
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(16,3);
glVertex2f(16,1);
glVertex2f(17,1);
glVertex2f(17,3);
//PIERNA DERECHA 4
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(17,2);
glVertex2f(17,1);
glVertex2f(18,1);
glVertex2f(18,2);
glEnd();
glFlush();
}
void miMenu(int valor) {
switch(valor) {
case 1:
inc=0.1;
break;
case 2:
inc=0;botar=0;
break;
case 3:
r=1;g=0;b=0;
break;
case 4:
r=0;g=1;b=0;
break;
case 5:
r=0;g=0;b=1;
break;
case 9:
botar=1;
break;
case 20:
r=1;g=1;b=0;
break;
case 21:
r=0;g=0;b=0;
break;
case 22:
r=0.5;g=0.5;b=0.5;
break;
case 23:
r=1;g=1;b=1;
break;
case 24:
r=0.5;g=0.5;b=0.5;
figura=1;
break;
case 25:
r=0.5;g=0.5;b=0.5;
figura=2;
break;
case 26:
r=0.5;g=0.5;b=0.5;
figura=3;
break;
case 27:
botar=2;
break;
case 28:
botar=1;
break;
default:
break;
}
}
void display(void)
{
if (figura==0){
glClear(GL_COLOR_BUFFER_BIT );
glPushMatrix();
glTranslatef(rx,0,0);
glTranslatef(0, ry, 0);
glRotatef(rotar,0,0,1);
dibujaCuadro();
glPopMatrix();
glutSwapBuffers();
glFlush();
}
if (figura==1){
glClear(GL_COLOR_BUFFER_BIT );
glPushMatrix();
glTranslatef(rx,0,0);
glTranslatef(0, ry, 0);
glRotatef(rotar,0,0,1);
dibujaJamesHetfield();
glPopMatrix();
glutSwapBuffers();
glFlush();
}
if(figura==2){
glClear(GL_COLOR_BUFFER_BIT );
glPushMatrix();
glTranslatef(rx,0,0);
glTranslatef(0, ry, 0);
glRotatef(rotar,0,0,1);
//dibujaJamesHetfield();
//dibujaCuadro();
mickey();
glPopMatrix();
glutSwapBuffers();
glFlush();
}
if(figura==3){
glClear(GL_COLOR_BUFFER_BIT );
glPushMatrix();
glTranslatef(rx,0,0);
glTranslatef(0, ry, 0);
glRotatef(rotar,0,0,1);
//dibujaJamesHetfield();
//dibujaCuadro();
beats();
glPopMatrix();
glutSwapBuffers();
glFlush();
}
}
void animar(void) {
rotar=rotar+inc;
if (botar==1){
ang=ang+0.001;
ry=10*cos(ang);
}
if (botar==2){
ang=ang+0.001;
rx=10*sin(ang);
}
glutPostRedisplay();
}
void crearMenu(void){
int colores3;
colores3=glutCreateMenu(miMenu);
glutAddMenuEntry("B", 3);
int colores;
colores=glutCreateMenu(miMenu);
glutAddMenuEntry("Rojo", 3);
glutAddMenuEntry("Verde", 4);
glutAddMenuEntry("Azul", 5);
glutAddMenuEntry("Amarillo", 20);
int gs;
gs=glutCreateMenu(miMenu);
glutAddMenuEntry("Negro",21);
glutAddMenuEntry("Gris",22);
glutAddMenuEntry("Blanco",23);
int fg;
fg=glutCreateMenu(miMenu);
glutAddMenuEntry("James Hetfield",24);
glutAddMenuEntry("Logo 1",25);
glutAddMenuEntry("Logo 2",26);
int rb;
rb=glutCreateMenu(miMenu);
glutAddMenuEntry("Sobre X",27);
glutAddMenuEntry("Sobre Y",28);
int sd;
sd=glutCreateMenu(miMenu);
glutAddMenuEntry("Fill",29);
glutAddMenuEntry("Empty",30);
//menu con el click derecho
glutCreateMenu(miMenu);
glutAddMenuEntry("Start", 1);
glutAddMenuEntry("Stop", 2);
glutAddMenuEntry("Rebotar", 9);
glutAddSubMenu("Color", colores);
glutAddSubMenu("Gray Scale", gs);
glutAddSubMenu("Figuras",fg);
glutAddSubMenu("Rebotar",rb);
glutAddSubMenu("Solid",sd);
glutAttachMenu(GLUT_RIGHT_BUTTON);
}
void ajustar(int ancho, int alto)
{
float aspectratio;
aspectratio = 1;
if (1>(ancho/alto))
{
glViewport(0, 0, ancho, ancho/aspectratio);
}
else
{
glViewport(0, 0, alto*aspectratio,alto);
}
}
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB |GLUT_SINGLE);
glutInitWindowSize(500, 500);
glutCreateWindow("MENU Y ANIMAR");
gluOrtho2D(-75, 75, -75, 75);
glClearColor(0.5,0.5,0.5,0);
crearMenu();
glutDisplayFunc(display);
//glutDisplayFunc(miMenu);
glutReshapeFunc(ajustar);
glutIdleFunc(animar);
glutMainLoop();
return 0;
}
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <GL/glut.h>
#define PI 3.141592653
float rotar = 0,inc=0.1, ry=0, rx=0, ang=0,botar=1;
float r=1,g=0,b=0;
int figura=0;
float r1=40, r2=25, r3=60, r4=30, r5=18, dx, dy;
void dibujaCuadro(void) {
glColor3f(r, g, b);
glBegin(GL_QUADS);
glVertex2f(5, 5);
glVertex2f(-5, 5);
glVertex2f(-5, -5);
glVertex2f(5, -5);
glEnd();
}
void circulo1 (void){
glColor3f(0,0,0);
glBegin(GL_POLYGON);
for(float i=0.0; i<2*PI; i+=0.01){
dx=r1*cos(i);
dy=r1*sin(i)-75;
glVertex2f(dx, dy);
}
glEnd();
}
void circulo2 (void){
glColor3f(0,0,0);
glBegin(GL_POLYGON);
for(float i=0.0; i<2*PI; i+=0.01){
dx=r2*cos(i);
dy=r2*sin(i);
glVertex2f(dx, dy);
}
glEnd();
}
void circulo3 (void){
glColor3f(0,0,0);
glBegin(GL_POLYGON);
for(float i=0.0; i<2*PI; i+=0.01){
dx=r2*cos(i);
dy=r2*sin(i);
glVertex2f(dx, dy);
}
glEnd();
}
void circuloBeats (void){
glColor3f(1,0,0);
glBegin(GL_POLYGON);
for(float i=0.0; i<2*PI; i+=0.01){
dx=r3*cos(i)-40;
dy=r3*sin(i)+100;
glVertex2f(dx, dy);
}
glEnd();
}
void circuloB1 (void){
glColor3f(1,1,1);
glBegin(GL_POLYGON);
for(float i=0.0; i<2*PI; i+=0.01){
dx=r4*cos(i)-40;
dy=r4*sin(i)+100;
glVertex2f(dx, dy);
}
glEnd();
}
void pataB (void){
glColor3f(1,1,1);
glBegin(GL_QUADS);
glVertex2f(0,0);
glVertex2f(0,-70);
glVertex2f(10,-70);
glVertex2f(10,0);
glEnd();
}
void circuloB2(void){
glColor3f(1,0,0);
glBegin(GL_POLYGON);
for(float i=0.0; i<2*PI; i+=0.01){
dx=r5*cos(i);
dy=r5*sin(i);
glVertex2f(dx, dy);
}
glEnd();
}
void mickey(void){
circulo1();
glTranslatef(-40,-27,0);
circulo2();
glTranslatef(80,0,0);
circulo3();
}
void beats (void){
circuloBeats();
circuloB1();
glTranslatef(-69,162,0);
pataB();
glTranslatef(29,-62,0);
circuloB2();
}
void dibujaJamesHetfield(void){
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_QUADS);
//CABELLO 1
glColor3f(1, 1, 0);
glVertex2f(4,29);
glVertex2f(4,13);
glVertex2f(18,13);
glVertex2f(18,29);
//CABELLO 2
//glBegin(GL_QUADS);
glColor3f(1, 1, 0);
glVertex2f(3,28);
glVertex2f(3,12);
glVertex2f(19,12);
glVertex2f(19,28);
//CABELLO 3
//glBegin(GL_QUADS);
glColor3f(1, 1, 0);
glVertex2f(3,27);
glVertex2f(3,14);
glVertex2f(20,14);
glVertex2f(20,27);
//CABELLO 4
//glBegin(GL_QUADS);
glColor3f(1, 1, 0);
glVertex2f(2,26);
glVertex2f(2,12);
glVertex2f(21,12);
glVertex2f(21,26);
//CABELLO 5
//glBegin(GL_QUADS);
glColor3f(1, 1, 0);
glVertex2f(1,19);
glVertex2f(1,16);
glVertex2f(4,16);
glVertex2f(4,19);
//CABELLO 6
//glBegin(GL_QUADS);
glColor3f(1, 1, 0);
glVertex2f(1,15);
glVertex2f(1,13);
glVertex2f(9,13);
glVertex2f(9,15);
//CABELLO 7
//glBegin(GL_QUADS);
glColor3f(1, 1, 0);
glVertex2f(3,14);
glVertex2f(3,11);
glVertex2f(5,11);
glVertex2f(5,14);
//CARA 1
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(7,24);
glVertex2f(7,23);
glVertex2f(8,23);
glVertex2f(8,24);
//CARA 2
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(8,23);
glVertex2f(8,22);
glVertex2f(10,22);
glVertex2f(10,23);
//CARA 3
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(9,22);
glVertex2f(9,17);
glVertex2f(14,17);
glVertex2f(14,22);
//CARA 4
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(5,22);
glVertex2f(5,20);
glVertex2f(7,20);
glVertex2f(7,22);
//CARA 5
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(7,21);
glVertex2f(7,20);
glVertex2f(9,20);
glVertex2f(9,21);
//CARA 6
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(8,20);
glVertex2f(8,16);
glVertex2f(9,16);
glVertex2f(9,20);
//CARA 7
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(5,18);
glVertex2f(5,15);
glVertex2f(8,15);
glVertex2f(8,18);
//CARA 8
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(4,17);
glVertex2f(4,16);
glVertex2f(5,16);
glVertex2f(5,17);
//CARA 9
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(11,17);
glVertex2f(11,13);
glVertex2f(12,13);
glVertex2f(12,17);
//CARA 10
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(9,16);
glVertex2f(9,14);
glVertex2f(11,14);
glVertex2f(11,16);
//CARA 11
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(12,16);
glVertex2f(12,14);
glVertex2f(14,14);
glVertex2f(14,16);
//CARA 12
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(10,14);
glVertex2f(10,13);
glVertex2f(13,13);
glVertex2f(13,14);
//CARA 13
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(11,25);
glVertex2f(11,22);
glVertex2f(12,22);
glVertex2f(12,25);
//CARA 14
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(12,23);
glVertex2f(12,22);
glVertex2f(16,22);
glVertex2f(16,23);
//CARA 15
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(13,24);
glVertex2f(13,23);
glVertex2f(14,23);
glVertex2f(14,24);
//CARA 16
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(15,24);
glVertex2f(15,23);
glVertex2f(16,23);
glVertex2f(16,24);
//CARA 17
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(14,21);
glVertex2f(14,16);
glVertex2f(15,16);
glVertex2f(15,21);
//CARA 18
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(15,18);
glVertex2f(15,15);
glVertex2f(18,15);
glVertex2f(18,18);
//CARA 19
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(15,21);
glVertex2f(15,20);
glVertex2f(18,20);
glVertex2f(18,21);
//CARA 1
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(16,22);
glVertex2f(16,21);
glVertex2f(18,21);
glVertex2f(18,22);
//OJO IZQUIERDO
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(5,20);
glVertex2f(5,18);
glVertex2f(8,18);
glVertex2f(8,20);
//OJO DERECHO
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(15,20);
glVertex2f(15,18);
glVertex2f(18,18);
glVertex2f(18,20);
//CEJA IZQUIERDA 1
//glBegin(GL_QUADS);
glColor3f(0.5, 0.5, 0.5);
glVertex2f(5,23);
glVertex2f(5,22);
glVertex2f(7,22);
glVertex2f(7,23);
//CEJA IZQUIERDA 2
//glBegin(GL_QUADS);
glColor3f(0.5, 0.5, 0.5);
glVertex2f(7,22);
glVertex2f(7,21);
glVertex2f(9,21);
glVertex2f(9,22);
//CEJA DERECHA 1
//glBegin(GL_QUADS);
glColor3f(0.5, 0.5, 0.5);
glVertex2f(14,22);
glVertex2f(14,21);
glVertex2f(16,21);
glVertex2f(16,22);
//CEJA DERECHA 2
//glBegin(GL_QUADS);
glColor3f(0.5, 0.5, 0.5);
glVertex2f(16,23);
glVertex2f(16,22);
glVertex2f(18,22);
glVertex2f(18,23);
//COLLAR
//glBegin(GL_QUADS);
glColor3f(0.5, 0.5, 0.5);
glVertex2f(11,13);
glVertex2f(11,12);
glVertex2f(12,12);
glVertex2f(12,13);
//BRAZO IZQUIERDO 1
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(6,13);
glVertex2f(6,11);
glVertex2f(9,11);
glVertex2f(9,13);
//BRAZO IZQUIERDO 2
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(6,11);
glVertex2f(6,10);
glVertex2f(8,10);
glVertex2f(8,11);
//BRAZO IZQUIERDO 3
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(6,10);
glVertex2f(6,9);
glVertex2f(7,9);
glVertex2f(7,10);
//BRAZO DERECHO 1
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(14,13);
glVertex2f(14,11);
glVertex2f(16,11);
glVertex2f(16,13);
//BRAZO DERECHO 2
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(14,11);
glVertex2f(14,10);
glVertex2f(15,10);
glVertex2f(15,11);
//MANO IZQUIERDA 1
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(7,8);
glVertex2f(7,7);
glVertex2f(8,7);
glVertex2f(8,8);
//MANO IZQUIERDA 2
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(8,9);
glVertex2f(8,6);
glVertex2f(9,6);
glVertex2f(9,9);
//MANO IZQUIERDA 3
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(9,10);
glVertex2f(9,6);
glVertex2f(10,6);
glVertex2f(10,10);
//MANO IZQUIERDA 4
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(10,9);
glVertex2f(10,7);
glVertex2f(11,7);
glVertex2f(11,9);
//MANO DERECHA
//glBegin(GL_QUADS);
glColor3f(1, 1, 0.6);
glVertex2f(16,11);
glVertex2f(16,9);
glVertex2f(18,9);
glVertex2f(18,11);
//CUERPO 1
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(9,12);
glVertex2f(9,10);
glVertex2f(14,10);
glVertex2f(14,12);
//CUERPO 2
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(9,13);
glVertex2f(9,12);
glVertex2f(11,12);
glVertex2f(11,13);
//CUERPO 3
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(12,13);
glVertex2f(12,12);
glVertex2f(14,12);
glVertex2f(14,13);
//CUERPO 4
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(9,14);
glVertex2f(9,13);
glVertex2f(10,13);
glVertex2f(10,14);
//CUERPO 4
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(13,14);
glVertex2f(13,13);
glVertex2f(14,13);
glVertex2f(14,14);
//CUERPO 5
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(8,11);
glVertex2f(8,9);
glVertex2f(9,9);
glVertex2f(9,11);
//CUERPO 6
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(7,10);
glVertex2f(7,8);
glVertex2f(8,8);
glVertex2f(8,10);
//CUERPO 7
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(10,10);
glVertex2f(10,9);
glVertex2f(11,9);
glVertex2f(11,10);
//CUERPO 8
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(12,10);
glVertex2f(12,9);
glVertex2f(13,9);
glVertex2f(13,10);
//GUITARRA 1
//glBegin(GL_QUADS);
glColor3f(1, 1, 1);
glVertex2f(5,9);
glVertex2f(5,7);
glVertex2f(7,7);
glVertex2f(7,9);
//GUITARRA 2
//glBegin(GL_QUADS);
glColor3f(1, 1, 1);
glVertex2f(6,7);
glVertex2f(6,5);
glVertex2f(7,5);
glVertex2f(7,7);
//GUITARRA 3
//glBegin(GL_QUADS);
glColor3f(1, 1, 1);
glVertex2f(7,7);
glVertex2f(7,6);
glVertex2f(8,6);
glVertex2f(8,7);
//GUITARRA 4
//glBegin(GL_QUADS);
glColor3f(1, 1, 1);
glVertex2f(7,5);
glVertex2f(7,4);
glVertex2f(8,4);
glVertex2f(8,5);
//GUITARRA 5
//glBegin(GL_QUADS);
glColor3f(1, 1, 1);
glVertex2f(8,6);
glVertex2f(8,3);
glVertex2f(9,3);
glVertex2f(9,6);
//GUITARRA 6
//glBegin(GL_QUADS);
glColor3f(1, 1, 1);
glVertex2f(9,5);
glVertex2f(9,3);
glVertex2f(10,3);
glVertex2f(10,5);
//GUITARRA 7
//glBegin(GL_QUADS);
glColor3f(1, 1, 1);
glVertex2f(10,7);
glVertex2f(10,4);
glVertex2f(11,4);
glVertex2f(11,7);
//GUITARRA 8
//glBegin(GL_QUADS);
glColor3f(1, 1, 1);
glVertex2f(11,7);
glVertex2f(11,5);
glVertex2f(12,5);
glVertex2f(12,7);
//GUITARRA 9
//glBegin(GL_QUADS);
glColor3f(1, 1, 1);
glVertex2f(12,7);
glVertex2f(12,6);
glVertex2f(15,6);
glVertex2f(15,7);
//GUITARRA 10
//glBegin(GL_QUADS);
glColor3f(1, 1, 1);
glVertex2f(13,8);
glVertex2f(13,7);
glVertex2f(14,7);
glVertex2f(14,8);
//GUITARRA 11
//glBegin(GL_QUADS);
glColor3f(1, 1, 1);
glVertex2f(11,10);
glVertex2f(11,8);
glVertex2f(12,8);
glVertex2f(12,10);
//BRAZO GUITARRA 1
//glBegin(GL_QUADS);
glColor3f(0.3, 0.3, 0.3);
glVertex2f(11,8);
glVertex2f(11,7);
glVertex2f(13,7);
glVertex2f(13,8);
//BRAZO GUITARRA 2
//glBegin(GL_QUADS);
glColor3f(0.3, 0.3, 0.3);
glVertex2f(12,9);
glVertex2f(12,8);
glVertex2f(14,8);
glVertex2f(14,9);
//BRAZO GUITARRA 3
//glBegin(GL_QUADS);
glColor3f(0.3, 0.3, 0.3);
glVertex2f(13,10);
glVertex2f(13,9);
glVertex2f(16,9);
glVertex2f(16,10);
//BRAZO GUITARRA 4
//glBegin(GL_QUADS);
glColor3f(0.3, 0.3, 0.3);
glVertex2f(17,12);
glVertex2f(17,11);
glVertex2f(19,11);
glVertex2f(19,12);
//BRAZO GUITARRA 5
//glBegin(GL_QUADS);
glColor3f(0.3, 0.3, 0.3);
glVertex2f(15,11);
glVertex2f(15,10);
glVertex2f(16,10);
glVertex2f(16,11);
//AFINADOR
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(19,12);
glVertex2f(19,11);
glVertex2f(23,11);
glVertex2f(23,12);
//AFINADOR
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(20,13);
glVertex2f(20,12);
glVertex2f(22,12);
glVertex2f(22,13);
//DETALLES GUITARRA 1
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(5,7);
glVertex2f(5,6);
glVertex2f(6,6);
glVertex2f(6,7);
//DETALLES GUITARRA 2
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(7,6);
glVertex2f(7,5);
glVertex2f(8,5);
glVertex2f(8,6);
//DETALLES GUITARRA 3
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(9,6);
glVertex2f(9,5);
glVertex2f(10,5);
glVertex2f(10,6);
//DETALLES GUITARRA 3
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(14,8);
glVertex2f(14,7);
glVertex2f(15,7);
glVertex2f(15,8);
//PIERNA IZQUIERDA 1
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(7,4);
glVertex2f(7,3);
glVertex2f(8,3);
glVertex2f(8,4);
//PIERNA IZQUIERDA 2
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(6,3);
glVertex2f(6,1);
glVertex2f(10,1);
glVertex2f(10,3);
//PIERNA IZQUIERDA 3
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(5,2);
glVertex2f(5,1);
glVertex2f(6,1);
glVertex2f(6,2);
//PIERNA DERECHA 1
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(12,6);
glVertex2f(12,5);
glVertex2f(15,5);
glVertex2f(15,6);
//PIERNA DERECHA 2
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(12,5);
glVertex2f(12,4);
glVertex2f(16,4);
glVertex2f(16,5);
//PIERNA DERECHA 3
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(13,4);
glVertex2f(13,1);
glVertex2f(16,1);
glVertex2f(16,4);
//PIERNA DERECHA 4
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(16,3);
glVertex2f(16,1);
glVertex2f(17,1);
glVertex2f(17,3);
//PIERNA DERECHA 4
//glBegin(GL_QUADS);
glColor3f(0, 0, 0);
glVertex2f(17,2);
glVertex2f(17,1);
glVertex2f(18,1);
glVertex2f(18,2);
glEnd();
glFlush();
}
void miMenu(int valor) {
switch(valor) {
case 1:
inc=0.1;
break;
case 2:
inc=0;botar=0;
break;
case 3:
r=1;g=0;b=0;
break;
case 4:
r=0;g=1;b=0;
break;
case 5:
r=0;g=0;b=1;
break;
case 9:
botar=1;
break;
case 20:
r=1;g=1;b=0;
break;
case 21:
r=0;g=0;b=0;
break;
case 22:
r=0.5;g=0.5;b=0.5;
break;
case 23:
r=1;g=1;b=1;
break;
case 24:
r=0.5;g=0.5;b=0.5;
figura=1;
break;
case 25:
r=0.5;g=0.5;b=0.5;
figura=2;
break;
case 26:
r=0.5;g=0.5;b=0.5;
figura=3;
break;
case 27:
botar=2;
break;
case 28:
botar=1;
break;
default:
break;
}
}
void display(void)
{
if (figura==0){
glClear(GL_COLOR_BUFFER_BIT );
glPushMatrix();
glTranslatef(rx,0,0);
glTranslatef(0, ry, 0);
glRotatef(rotar,0,0,1);
dibujaCuadro();
glPopMatrix();
glutSwapBuffers();
glFlush();
}
if (figura==1){
glClear(GL_COLOR_BUFFER_BIT );
glPushMatrix();
glTranslatef(rx,0,0);
glTranslatef(0, ry, 0);
glRotatef(rotar,0,0,1);
dibujaJamesHetfield();
glPopMatrix();
glutSwapBuffers();
glFlush();
}
if(figura==2){
glClear(GL_COLOR_BUFFER_BIT );
glPushMatrix();
glTranslatef(rx,0,0);
glTranslatef(0, ry, 0);
glRotatef(rotar,0,0,1);
//dibujaJamesHetfield();
//dibujaCuadro();
mickey();
glPopMatrix();
glutSwapBuffers();
glFlush();
}
if(figura==3){
glClear(GL_COLOR_BUFFER_BIT );
glPushMatrix();
glTranslatef(rx,0,0);
glTranslatef(0, ry, 0);
glRotatef(rotar,0,0,1);
//dibujaJamesHetfield();
//dibujaCuadro();
beats();
glPopMatrix();
glutSwapBuffers();
glFlush();
}
}
void animar(void) {
rotar=rotar+inc;
if (botar==1){
ang=ang+0.001;
ry=10*cos(ang);
}
if (botar==2){
ang=ang+0.001;
rx=10*sin(ang);
}
glutPostRedisplay();
}
void crearMenu(void){
int colores3;
colores3=glutCreateMenu(miMenu);
glutAddMenuEntry("B", 3);
int colores;
colores=glutCreateMenu(miMenu);
glutAddMenuEntry("Rojo", 3);
glutAddMenuEntry("Verde", 4);
glutAddMenuEntry("Azul", 5);
glutAddMenuEntry("Amarillo", 20);
int gs;
gs=glutCreateMenu(miMenu);
glutAddMenuEntry("Negro",21);
glutAddMenuEntry("Gris",22);
glutAddMenuEntry("Blanco",23);
int fg;
fg=glutCreateMenu(miMenu);
glutAddMenuEntry("James Hetfield",24);
glutAddMenuEntry("Logo 1",25);
glutAddMenuEntry("Logo 2",26);
int rb;
rb=glutCreateMenu(miMenu);
glutAddMenuEntry("Sobre X",27);
glutAddMenuEntry("Sobre Y",28);
int sd;
sd=glutCreateMenu(miMenu);
glutAddMenuEntry("Fill",29);
glutAddMenuEntry("Empty",30);
//menu con el click derecho
glutCreateMenu(miMenu);
glutAddMenuEntry("Start", 1);
glutAddMenuEntry("Stop", 2);
glutAddMenuEntry("Rebotar", 9);
glutAddSubMenu("Color", colores);
glutAddSubMenu("Gray Scale", gs);
glutAddSubMenu("Figuras",fg);
glutAddSubMenu("Rebotar",rb);
glutAddSubMenu("Solid",sd);
glutAttachMenu(GLUT_RIGHT_BUTTON);
}
void ajustar(int ancho, int alto)
{
float aspectratio;
aspectratio = 1;
if (1>(ancho/alto))
{
glViewport(0, 0, ancho, ancho/aspectratio);
}
else
{
glViewport(0, 0, alto*aspectratio,alto);
}
}
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB |GLUT_SINGLE);
glutInitWindowSize(500, 500);
glutCreateWindow("MENU Y ANIMAR");
gluOrtho2D(-75, 75, -75, 75);
glClearColor(0.5,0.5,0.5,0);
crearMenu();
glutDisplayFunc(display);
//glutDisplayFunc(miMenu);
glutReshapeFunc(ajustar);
glutIdleFunc(animar);
glutMainLoop();
return 0;
}
Comentarios
Publicar un comentario