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

Showing posts with label Simple Menu Program. Show all posts
Showing posts with label Simple Menu Program. Show all posts

Tuesday, 19 November 2019

Simple 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_POINTS);
    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 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);


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

myInit();
glutMainLoop();
return 0;


}