Interviews Questions, Algorithms, Aptitude, C Interview Program, C Theory Question, Aptitude Tricks, Test Series,

Tuesday, 19 November 2019

Sub-Menu Program

#include<stdio.h>
#include<math.h>
#include<GL/glut.h>
int width=400,height=400;
void myInit()
{
    glClearColor(1.0,1.0,1.0,1.0);
    glColor3f(1.0,0.0,0.0);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluOrtho2D(0.0,10.0,0.0,10.0);
    glMatrixMode(GL_MODELVIEW);
}

void square()
{
    glClear(GL_COLOR_BUFFER_BIT);
    //glColor3f(1.0,0.0,0.0);
    glBegin(GL_POLYGON);
    glVertex2i(1,1);
    glVertex2i(9,1);
    glVertex2i(9,9);
    glVertex2i(1,9);
    glEnd();
    glutSwapBuffers();
    glFlush();
}



void triangle()
{
    glClear(GL_COLOR_BUFFER_BIT);
  //   glColor3f(1.0,0.0,1.0);
    glBegin(GL_POLYGON);
    glVertex2i(1,1);
    glVertex2i(5,9);
    glVertex2i(9,1);
    glEnd();
    glutSwapBuffers();
    glFlush();
}
void circle()
{
    int r=4;
    float theta;
   glClear(GL_COLOR_BUFFER_BIT);
    glPointSize(4.0);
  //  glColor3f(0.0,1.0,1.0);
    glBegin(GL_POLYGON);
    for(theta=0;theta<=360;theta+=0.01){
    glVertex2f(r*cos(theta*3.142/180)+5,r*sin(theta*3.142/180)+5);
    }
    glEnd();
    glutSwapBuffers();
    glFlush();
}

void myDisplay()
{
    glClear(GL_COLOR_BUFFER_BIT);

    glFlush();
}
void subMenu(int id){
//glClear(GL_COLOR_BUFFER_BIT);
    printf("subMenu called with id: %d\n",id);
    switch(id){
        case 1: glColor3f(1.0,0.0,0.0); break;
        case 2: glColor3f(0.0,1.0,0.0); break;
        case 3: glColor3f(0.0,0.0,1.0); break;
        case 4: glColor3f(0.0,1.0,1.0); break;
       // case 4: exit(0); break;
    }
}

void myMenu(int id){

    printf("MyMenu called with id: %d\n",id);
    switch(id){
        case 1: triangle(); break;
        case 2: circle(); break;
        case 3: square(); break;
        case 4: exit(0); break;
    }
}
void myKey(unsigned char key, int x,int yy){
    if(key=='q' || key == 'Q')
        exit(0);
}

int main(int argc, char **argv){
int menu_id;

glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
  glutInitWindowSize(400,400);
   glutInitWindowPosition(100,100);
   glutCreateWindow("Input Interaction");

   glutDisplayFunc(myDisplay);
   glutKeyboardFunc(myKey);


   int sub_menu=glutCreateMenu(subMenu);
   glutAddMenuEntry("red",1);
   glutAddMenuEntry("blue",3);
   glutAddMenuEntry("green",2);
   glutAddMenuEntry("yellow",4);




menu_id=glutCreateMenu(myMenu);
glutAddMenuEntry("Triangle",1);
glutAddMenuEntry("Circle",2);
glutAddMenuEntry("Square",3);
glutAddSubMenu("Colours",sub_menu);
glutAddMenuEntry("exit",4);
glutAttachMenu(GLUT_RIGHT_BUTTON);

myInit();
glutMainLoop();
return 0;


}

0 comments:

Post a Comment