Advertisement
mhdew

Prome's Shahid Minar

Apr 16th, 2021
718
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.68 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 rectangle(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4)
  24. {
  25.     glColor3f (1.0, 1.0, 1.0);
  26.    
  27.     glBegin(GL_POLYGON);
  28.    
  29.     glVertex2d(x1,y1);
  30.     glVertex2d(x2,y2);
  31.     glVertex2d(x3,y3);
  32.     glVertex2d(x4,y4);
  33.    
  34.     glEnd();
  35.  
  36.     glFlush();
  37. }
  38.  
  39. void rectangle2(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4)
  40. {
  41.     glColor3f (0.87, 0.87, 0.87);
  42.    
  43.     glBegin(GL_POLYGON);
  44.    
  45.     glVertex2d(x1,y1);
  46.     glVertex2d(x2,y2);
  47.     glVertex2d(x3,y3);
  48.     glVertex2d(x4,y4);
  49.    
  50.     glEnd();
  51.  
  52.     glFlush();
  53. }
  54.  
  55. void rectangle3(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4)
  56. {
  57.     glColor3f (0.65, 0.0, 0.0);
  58.    
  59.     glBegin(GL_POLYGON);
  60.    
  61.     glVertex2d(x1,y1);
  62.     glVertex2d(x2,y2);
  63.     glVertex2d(x3,y3);
  64.     glVertex2d(x4,y4);
  65.    
  66.     glEnd();
  67.  
  68.     glFlush();
  69. }
  70.  
  71. void rectangle4(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4)
  72. {
  73.     glColor3f (0.52, 0.0, 0.0);
  74.    
  75.     glBegin(GL_POLYGON);
  76.    
  77.     glVertex2d(x1,y1);
  78.     glVertex2d(x2,y2);
  79.     glVertex2d(x3,y3);
  80.     glVertex2d(x4,y4);
  81.    
  82.     glEnd();
  83.  
  84.     glFlush();
  85. }
  86.  
  87. void rectangle5(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4)
  88. {
  89.     glColor3f (0.32, 0.00, 0.00);
  90.    
  91.     glBegin(GL_POLYGON);
  92.    
  93.     glVertex2d(x1,y1);
  94.     glVertex2d(x2,y2);
  95.     glVertex2d(x3,y3);
  96.     glVertex2d(x4,y4);
  97.    
  98.     glEnd();
  99.  
  100.     glFlush();
  101. }
  102.  
  103.  
  104. void midPoint(int xc, int yc, int r){
  105.  
  106.     glColor3f (0.86, 0.0, 0.0);
  107.  
  108.     int x0=0, y0=r, p0=1-r;
  109.     int ax0[1111], ay0[1111];
  110.     int idx0=0;
  111.     ax0[idx0]=x0;
  112.     ay0[idx0++]=y0;
  113.     while(1){
  114.         if(p0<0){
  115.             x0++; p0=p0+(2*x0)+1;
  116.         }
  117.         else{
  118.             x0++; y0--; p0=p0+(2*x0)+1-2*y0;
  119.         }
  120.         ax0[idx0]=x0; ay0[idx0++]=y0;
  121.         if(x0>=y0) break;
  122.     }
  123.  
  124.     glBegin(GL_POLYGON);
  125.     int tx0,ty0;
  126.     for(int i=0;i<idx0;i++){
  127.         tx0=ax0[i]*(-1); ty0=ay0[i]*(-1);
  128.         glVertex2d(ax0[i]+xc,ay0[i]+yc);
  129.         glVertex2d(tx0+xc,ay0[i]+yc);
  130.         glVertex2d(ax0[i]+xc,ty0+yc);
  131.         glVertex2d(tx0+xc,ty0+yc);
  132.         glVertex2d(ay0[i]+xc,ax0[i]+yc);
  133.         glVertex2d(ty0+xc,ax0[i]+yc);
  134.         glVertex2d(ay0[i]+xc,tx0+yc);
  135.         glVertex2d(ty0+xc,tx0+yc);
  136.     }
  137.     glEnd();
  138.  
  139.     glFlush();
  140. }
  141.  
  142.  
  143. void display(void)
  144. {
  145.     glClear (GL_COLOR_BUFFER_BIT);
  146.    
  147.     // axes();
  148.  
  149.     // circle
  150.     midPoint(0,450,280);
  151.  
  152.     // inbar0d
  153.     rectangle2(-215,190,215,190,215,210,-215,210);
  154.     rectangle2(-215,390,215,390,215,410,-215,410);
  155.     rectangle2(-215,590,215,590,215,610,-215,610);
  156.  
  157.     // inbar0u
  158.     rectangle2(-210,740,210,740,210,760,-210,760);
  159.  
  160.     // inbar-1
  161.     rectangle2(-445,150,-315,110,-315,130,-445,170);
  162.     rectangle2(-445,350,-315,310,-315,330,-445,370);
  163.  
  164.     // inbar1
  165.     rectangle2(445,150,315,110,315,130,445,170);
  166.     rectangle2(445,350,315,310,315,330,445,370);
  167.  
  168.     // inbar-2
  169.     rectangle2(-695,100,-545,75,-545,95,-695,120);
  170.     rectangle2(-695,275,-545,250,-545,270,-695,295);
  171.  
  172.     // inbar2
  173.     rectangle2(695,100,545,75,545,95,695,120);
  174.     rectangle2(695,275,545,250,545,270,695,295);
  175.  
  176.     // col0d
  177.     rectangle(-15,0,15,0,15,600,-15,600);
  178.     rectangle(-215,0,-165,0,-165,600,-215,600);
  179.     rectangle(165,0,215,0,215,600,165,600);
  180.  
  181.     // col0u
  182.     rectangle(-15,600,15,600,8,920,-8,920);
  183.     rectangle(-215,600,-165,600,-200,920,-235,920);
  184.     rectangle(165,600,215,600,235,920,200,920);
  185.    
  186.     // bar0
  187.     rectangle(-220,900,220,900,225,920,-225,920);
  188.  
  189.     // col-1
  190.     rectangle(-340,0,-315,0,-315,575,-340,575);
  191.     rectangle(-445,0,-420,0,-420,600,-445,620);
  192.  
  193.     // bar-1
  194.     rectangle(-445,595,-315,550,-315,575,-445,620);
  195.  
  196.     // col1
  197.     rectangle(340,0,315,0,315,575,340,575);
  198.     rectangle(445,0,420,0,420,600,445,620);
  199.  
  200.     // bar1
  201.     rectangle(445,595,315,550,315,575,445,620);
  202.  
  203.     // col-2
  204.     rectangle(-570,0,-545,0,-545,425,-570,425);
  205.     rectangle(-695,0,-670,0,-670,450,-695,450);
  206.  
  207.     // bar-2
  208.     rectangle(-695,425,-545,400,-545,425,-695,450);
  209.  
  210.     // col2
  211.     rectangle(570,0,545,0,545,425,570,425);
  212.     rectangle(695,0,670,0,670,450,695,450);
  213.  
  214.     // bar2
  215.     rectangle(695,425,545,400,545,425,695,450);
  216.  
  217.     // base1
  218.     rectangle3(-775,0,775,0,775,-50,-775,-50);
  219.  
  220.     // base2
  221.     rectangle4(-825,-50,825,-50,825,-100,-825,-100);
  222.  
  223.     // base3
  224.     rectangle5(-855,-100,855,-100,855,-150,-855,-150);
  225. }
  226.  
  227. void init (void){
  228.    
  229.     glClearColor (0.0, 0.0, 0.0, 0.0);
  230.    
  231.     glMatrixMode(GL_PROJECTION);
  232.     glLoadIdentity();
  233.     glOrtho(-1000,1000,-800,1300, -1.0, 1.0);
  234. }
  235.  
  236. int main(int argc, char** argv)
  237. {
  238.     glutInit(&argc, argv);
  239.     glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
  240.     glutInitWindowSize (1000, 1000);
  241.     glutInitWindowPosition (50, 50);
  242.     glutCreateWindow ("172-15-9743");
  243.     init ();
  244.     glutDisplayFunc(display);
  245.     glutMainLoop();
  246.    
  247.     return 0;
  248. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement