Advertisement
mhdew

hands of fahad

Dec 9th, 2020 (edited)
749
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.69 KB | None | 0 0
  1. #include<stdio.h>
  2. #include <GL/gl.h>
  3. #include <GL/glut.h>
  4.  
  5. int rund(double x) { return ((int)(x*10))%10>5?(int)++x:(int)x; }
  6.  
  7. void axes()
  8. {
  9.     glColor3f (1.0, 0.0, 0.0);
  10.    
  11.     glBegin(GL_POINTS);
  12.    
  13.     for(int i=-1000;i<=1000;i++){
  14.         glVertex2d(0,i);
  15.         glVertex2d(i,0);
  16.     }
  17.  
  18.     glEnd();
  19.  
  20.     glFlush();
  21. }
  22.  
  23. void leftHandOutline(){
  24.  
  25.     glColor3f (1.0, 1.0, 1.0);
  26.    
  27.     int x=5;
  28.  
  29.     // upper part
  30.     glBegin(GL_POLYGON);
  31.    
  32.     glVertex2d(-50,440+x);
  33.     glVertex2d(-350-x,40);
  34.     glVertex2d(-320+x,15);
  35.     glVertex2d(-50,390-x);
  36.  
  37.     glEnd();
  38.  
  39.     // lower part
  40.     glBegin(GL_POLYGON);
  41.  
  42.     glVertex2d(-350-x,0);
  43.     glVertex2d(-250-x,-200);
  44.     glVertex2d(-210+x,-200);
  45.     glVertex2d(-320+x,15);
  46.        
  47.     glEnd();
  48.  
  49.     // middle part
  50.     glBegin(GL_TRIANGLES);
  51.  
  52.     glVertex2d(-350-x,40);
  53.     glVertex2d(-320+x,15);
  54.     glVertex2d(-350-x,0);
  55.  
  56.     glEnd();
  57.  
  58.  
  59.     glFlush();
  60. }
  61.  
  62. void leftHand(){
  63.  
  64.     glColor3f (1.0, 0.0, 0.0);
  65.    
  66.     int x=350;
  67.  
  68.     // upper part
  69.     glBegin(GL_POLYGON);
  70.    
  71.     glVertex2d(300-x,440);
  72.     glVertex2d(0-x,40);
  73.     glVertex2d(30-x,15);
  74.     glVertex2d(300-x,390);
  75.  
  76.     glEnd();
  77.  
  78.     // lower part
  79.     glBegin(GL_POLYGON);
  80.  
  81.     glVertex2d(0-x,0);
  82.     glVertex2d(100-x,-200);
  83.     glVertex2d(140-x,-200);
  84.     glVertex2d(30-x,15);
  85.        
  86.     glEnd();
  87.  
  88.     // middle part
  89.     glBegin(GL_TRIANGLES);
  90.  
  91.     glVertex2d(0-x,40);
  92.     glVertex2d(30-x,15);
  93.     glVertex2d(0-x,0);
  94.  
  95.     glEnd();
  96.  
  97.  
  98.     glFlush();
  99. }
  100.  
  101. void rightHandOutline(){
  102.  
  103.     glColor3f(1.0, 1.0, 1.0);
  104.  
  105.     int x=5;
  106.  
  107.     // upper part
  108.     glBegin(GL_POLYGON);
  109.  
  110.     glVertex2d(0,440+x);
  111.     glVertex2d(350+x,140);
  112.     glVertex2d(320-x,140);
  113.     glVertex2d(0,390-x);
  114.  
  115.     glEnd();
  116.  
  117.     // lower part
  118.     glBegin(GL_POLYGON);
  119.  
  120.     glVertex2d(320-x,140+x);
  121.     glVertex2d(355+x,140+x);
  122.     glVertex2d(385+x,70);
  123.     glVertex2d(350-x,70);
  124.  
  125.     glEnd();
  126.  
  127.     glFlush();
  128. }
  129.  
  130. void rightHand(){
  131.  
  132.     glColor3f(1.0, 0.0, 0.0);
  133.  
  134.     // upper part
  135.     glBegin(GL_POLYGON);
  136.  
  137.     glVertex2d(0,440);
  138.     glVertex2d(350,140);
  139.     glVertex2d(320,140);
  140.     glVertex2d(0,390);
  141.  
  142.     glEnd();
  143.  
  144.     // lower part
  145.     glBegin(GL_POLYGON);
  146.  
  147.     glVertex2d(320,140);
  148.     glVertex2d(355,140);
  149.     glVertex2d(385,70);
  150.     glVertex2d(350,70);
  151.  
  152.     glEnd();
  153.  
  154.     glFlush();
  155. }
  156.  
  157. void display(void)
  158. {
  159.     glClear (GL_COLOR_BUFFER_BIT);
  160.    
  161.     // axes();
  162.  
  163.     leftHandOutline();
  164.     leftHand();
  165.     rightHandOutline();
  166.     rightHand();
  167.        
  168. }
  169.  
  170. void init (void){
  171.    
  172.     glClearColor (0.0, 0.0, 0.0, 0.0);
  173.    
  174.     glMatrixMode(GL_PROJECTION);
  175.     glLoadIdentity();
  176.     gluOrtho2D(-1000,1000,-1000,1000);      //fix the windows size
  177. }
  178.  
  179. int main(int argc, char** argv)
  180. {
  181.     glutInit(&argc, argv);
  182.     glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
  183.     glutInitWindowSize (1000, 1000);
  184.     glutInitWindowPosition (50, 50);
  185.     glutCreateWindow ("172-15-9804");
  186.     init ();
  187.     glutDisplayFunc(display);
  188.     glutMainLoop();
  189.    
  190.     return 0;
  191. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement