Advertisement
backstreetimrul

Nahid

Jul 31st, 2019
383
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.29 KB | None | 0 0
  1. #include<windows.h>
  2. #include<GL/glut.h>
  3. #include<stdio.h>
  4. //dynamic
  5. float x1=0.05,x2=0.05,x3=-0.05,x4=-0.05;
  6. float y1=0.05,y2=-0.05,y3=-0.05,y4=0.05;
  7. //right
  8. float Xmin=0.7,Xmax=0.9,Ymin=0.5,Ymax=0.7;
  9. //left
  10. float Xmin1=0.1,Xmax1=0.4,Ymin1=0.7,Ymax1=0.9;
  11. //down --
  12. float Xmin2=-0.3,Ymin2=-0.3,Xmax2=-0.1,Ymax2=-0.1;
  13. float Amax,Amin,Bmax,Bmin;
  14. float dx=0,dy=0;
  15. void display()
  16. {
  17.     glClear(GL_COLOR_BUFFER_BIT);
  18.  
  19.     //Static  -- right
  20.     glBegin(GL_QUADS);
  21.     glColor3f(1,1,1);
  22.     glVertex2d(Xmin,Ymax);
  23.     glVertex2d(Xmax,Ymax);
  24.     glColor3f(1,0,2);
  25.     glVertex2d(Xmax,Ymin);
  26.     glVertex2d(Xmin,Ymin);
  27.     glEnd();
  28.     glFlush();
  29.  
  30.     //left
  31.     glBegin(GL_QUADS);
  32.     glColor3f(1,0,1);
  33.     glVertex2d(Xmin1,Ymax1);
  34.     glVertex2d(Xmax1,Ymax1);
  35.     glColor3f(1,1,0);
  36.     glVertex2d(Xmax1,Ymin1);
  37.     glVertex2d(Xmin1,Ymin1);
  38.     glEnd();
  39.     glFlush();
  40.  
  41.     //Red- below obj------
  42.     glBegin(GL_QUADS);
  43.     glColor3f(1,0,0);
  44.     glVertex2d(Xmin2,Ymax2);
  45.     glVertex2d(Xmax2,Ymax2);
  46.     glVertex2d(Xmax2,Ymin2);
  47.     glVertex2d(Xmin2,Ymin2);
  48.     glEnd();
  49.     glFlush();
  50.  
  51.     //dynamic
  52.     glColor3f(1,1,1);
  53.     glBegin(GL_QUADS);
  54.     glVertex2d(x1+dx,y1+dy);
  55.     glVertex2d(x2+dx,y2+dy);
  56.     glVertex2d(x3+dx,y3+dy);
  57.     glVertex2d(x4+dx,y4+dy);
  58.     glEnd();
  59.     glFlush();
  60.  
  61.     glutSwapBuffers();
  62. }
  63. void vanish(int x){
  64.     if(x==1){
  65.         Xmin=0;
  66.         Xmax=0;
  67.         Ymin=0;
  68.         Ymax=0;
  69.     }
  70.     else if(x==2){
  71.         Xmin1=0;
  72.         Xmax1=0;
  73.         Ymin1=0;
  74.         Ymax1=0;
  75.     }
  76.     else if(x==3){
  77.         Xmin2=0;
  78.         Xmax2=0;
  79.         Ymin2=0;
  80.         Ymax2=0;
  81.     }
  82.  
  83. }
  84. void check()
  85. {
  86.     Amax = x2+dx;
  87.     Bmax = y1+dy;
  88.  
  89.     Amin = x3+dx;   ///not x1+dx         ///*************
  90.     Bmin = y3+dy;
  91.  
  92.  
  93.     /*** for object3 ***/   ///Only this obj is fixed
  94.     if((Amin<=Xmax2) && (Amax>=Xmin2) && (Bmin<=Ymax2) && (Bmax>=Ymin2)){   ///***********
  95.         vanish(3);
  96.     }
  97.  
  98.     /*** for object1 ***/
  99.  
  100.     if((Amax>=Xmin)&&(Amax<=Xmax)&&(Bmax>=Ymin)&&(Bmax<=Ymax))
  101.     {
  102.         vanish(1);
  103.     }
  104.     else if((Amax>=Xmin)&&(Amax<=Xmax)&&(Bmin<=Ymax)&&(Bmin>=Ymin))
  105.     {
  106.         vanish(1);
  107.     }
  108.  
  109.     /*** for object2 ***/
  110.     if((Amax>=Xmin1)&&(Amax<=Xmax1)&&(Bmax>=Ymin1)&&(Bmax<=Ymax1))
  111.     {
  112.         vanish(2);
  113.     }
  114.     else if((Amax>=Xmin1)&&(Amax<=Xmax1)&&(Bmin<=Ymax1)&&(Bmin>=Ymin1))
  115.     {
  116.         vanish(2);
  117.     }
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126. }
  127.  
  128. void keyboard(unsigned char key,int x, int y)
  129. {
  130.     switch(key)
  131.     {
  132.     case 'w':
  133.     {
  134.         dy=dy+0.01;
  135.         check();
  136.         glutPostRedisplay();
  137.         break;
  138.     }
  139.  
  140.  
  141.  
  142.     case 's':
  143.     {
  144.         dy=dy-0.01;
  145.         check();
  146.         glutPostRedisplay();
  147.         break;
  148.     }
  149.  
  150.     case 'a':
  151.     {
  152.         dx=dx-0.01;
  153.         check();
  154.         glutPostRedisplay();
  155.         break;
  156.     }
  157.  
  158.     case 'd':
  159.     {
  160.         dx=dx+0.01;
  161.         check();
  162.         glutPostRedisplay();
  163.         break;
  164.     }
  165.     }
  166. }
  167.  
  168. int main(int argc, char **argv)
  169. {
  170.  
  171.     glutInit(&argc,argv);
  172.     glutInitWindowSize(600,600);
  173.     glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
  174.     glutInitWindowPosition(100,100);
  175.     glutCreateWindow("Cse lab");
  176.     glutDisplayFunc(display);
  177.     glutKeyboardFunc(keyboard);
  178.     glutMainLoop();
  179.     return 0;
  180. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement