Advertisement
Shahriarrafi

Shahid Minar Using Mid Point Circle Algorithm in Opengl

Mar 19th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.42 KB | None | 0 0
  1.  
  2. #include<stdio.h>
  3. #include<GL/gl.h>
  4. #include<GL/glut.h>
  5.  
  6.  
  7. float p;
  8. int r;
  9. float x, y;
  10. void Display(void){
  11.  
  12. glClear(GL_COLOR_BUFFER_BIT);
  13.  
  14.  
  15. glColor3ub (192,192,192);
  16. glBegin(GL_POLYGON);
  17. glVertex2d (-400,-70);
  18. glVertex2d (400,-70);
  19. glVertex2d (180,80);
  20. glVertex2d (-180,80);
  21. glEnd();
  22.  
  23.  
  24. MidPointCircle(0,200,85);
  25. //1
  26. glColor3ub (128,128,128);
  27. glBegin(GL_POLYGON);
  28. glVertex2d (-100,390);
  29. glVertex2d (100,390);
  30. glVertex2d (100,370);
  31. glVertex2d (-100,370);
  32. glEnd();
  33. //2
  34. glColor3ub (128,128,128);
  35. glBegin(GL_POLYGON);
  36. glVertex2d (-100,370);
  37. glVertex2d (100,370);
  38. glVertex2d (60,300);
  39. glVertex2d (-60,300);
  40. glEnd();
  41. //3
  42. glColor3ub (0,0,0);
  43. glBegin(GL_POLYGON);
  44. glVertex2d (-50,350);
  45. glVertex2d (50,350);
  46. glVertex2d (30,300);
  47. glVertex2d (-30,300);
  48. glEnd();
  49. //3.1
  50. glColor3ub (0,255,255);
  51. glBegin(GL_POLYGON);
  52. glVertex2d (-40,350);
  53. glVertex2d (40,350);
  54. glVertex2d (25,300);
  55. glVertex2d (-25,300);
  56. glEnd();
  57.  
  58. //Left
  59. glColor3ub (128,128,128);
  60. glBegin(GL_POLYGON);
  61. glVertex2d (-60,300);
  62. glVertex2d (-30,300);
  63. glVertex2d (-30,0);
  64. glVertex2d (-60,0);
  65. glEnd();
  66. //Left_shadow
  67. glColor3ub (0,0,0);
  68. glBegin(GL_POLYGON);
  69. glVertex2d (-30,300);
  70. glVertex2d (-25,300);
  71. glVertex2d (-25,10);
  72. glVertex2d (-30,0);
  73. glEnd();
  74.  
  75. //Right
  76. glColor3ub (128,128,128);
  77. glBegin(GL_POLYGON);
  78. glVertex2d (60,300);
  79. glVertex2d (30,300);
  80. glVertex2d (30,0);
  81. glVertex2d (60,0);
  82. glEnd();
  83. //Right_shadow
  84. glColor3ub (0,0,0);
  85. glBegin(GL_POLYGON);
  86. glVertex2d (30,300);
  87. glVertex2d (25,300);
  88. glVertex2d (25,10);
  89. glVertex2d (30,0);
  90. glEnd();
  91. ////
  92.  
  93. ///Right
  94.  
  95.  
  96. //Left
  97. glColor3ub (128,128,128);
  98. glBegin(GL_POLYGON);
  99. glVertex2d (130,280);
  100. glVertex2d (100,280);
  101. glVertex2d (100,0);
  102. glVertex2d (130,0);
  103. glEnd();
  104. //Left_shadow
  105. glColor3ub (0,0,0);
  106. glBegin(GL_POLYGON);
  107. glVertex2d (100,280);
  108. glVertex2d (93.5,270);
  109. glVertex2d (93.5,15);
  110. glVertex2d (100,0);
  111. glEnd();
  112. //right
  113. glColor3ub (128,128,128);
  114. glBegin(GL_POLYGON);
  115. glVertex2d (200,280);
  116. glVertex2d (170,280);
  117. glVertex2d (170,0);
  118. glVertex2d (200,0);
  119. glEnd();
  120. //right_shadow
  121. glColor3ub (0,0,0);
  122. glBegin(GL_POLYGON);
  123. glVertex2d (170,250);
  124. glVertex2d (160,250);
  125. glVertex2d (160,10);
  126. glVertex2d (170,0);
  127. glEnd();
  128. //head
  129. glColor3ub (128,128,128);
  130. glBegin(GL_POLYGON);
  131. glVertex2d (170,280);
  132. glVertex2d (130,280);
  133. glVertex2d (130,250);
  134. glVertex2d (170,250);
  135. glEnd();
  136. //head shadow
  137. glColor3ub (0,0,0);
  138. glBegin(GL_POLYGON);
  139. glVertex2d (170,250);
  140. glVertex2d (130,250);
  141. glVertex2d (130,245);
  142. glVertex2d (160,245);
  143. glEnd();
  144. ///Right
  145.  
  146.  
  147. //Left
  148. glColor3ub (128,128,128);
  149. glBegin(GL_POLYGON);
  150. glVertex2d (-130,280);
  151. glVertex2d (-100,280);
  152. glVertex2d (-100,0);
  153. glVertex2d (-130,0);
  154. glEnd();
  155. //Left_shadow
  156. glColor3ub (0,0,0);
  157. glBegin(GL_POLYGON);
  158. glVertex2d (-100,280);
  159. glVertex2d (-93.5,270);
  160. glVertex2d (-93.5,15);
  161. glVertex2d (-100,0);
  162. glEnd();
  163. //right
  164. glColor3ub (128,128,128);
  165. glBegin(GL_POLYGON);
  166. glVertex2d (-200,280);
  167. glVertex2d (-170,280);
  168. glVertex2d (-170,0);
  169. glVertex2d (-200,0);
  170. glEnd();
  171. //right_shadow
  172. glColor3ub (0,0,0);
  173. glBegin(GL_POLYGON);
  174. glVertex2d (-170,250);
  175. glVertex2d (-160,250);
  176. glVertex2d (-160,10);
  177. glVertex2d (-170,0);
  178. glEnd();
  179. //head
  180. glColor3ub (128,128,128);
  181. glBegin(GL_POLYGON);
  182. glVertex2d (-170,280);
  183. glVertex2d (-130,280);
  184. glVertex2d (-130,250);
  185. glVertex2d (-170,250);
  186. glEnd();
  187. //head shadow
  188. glColor3ub (0,0,0);
  189. glBegin(GL_POLYGON);
  190. glVertex2d (-170,250);
  191. glVertex2d (-130,250);
  192. glVertex2d (-130,245);
  193. glVertex2d (-160,245);
  194. glEnd();
  195.  
  196. glFlush();
  197.  
  198. }
  199. void MidPointCircle(int Xc, int Yc, int rad){
  200. int cntrX = Xc;
  201. int cntrY = Yc;
  202. r = rad;
  203. x = 0;
  204. y = r;
  205. p = 1-r;
  206. while(x<=y){
  207. glColor3ub(255, 60, 0);
  208. glBegin(GL_POLYGON);
  209. if(p<0){
  210. x++;
  211. p = p+(2*x)+3;
  212. }
  213. else{
  214. x++;
  215. y--;
  216. p = p+(2*x)-(2*y)+5;
  217. }
  218. glVertex2d(cntrX+x,cntrY+y);
  219. glVertex2d(cntrX+y,cntrY+x);
  220. glVertex2d(cntrX-y,cntrY+x);
  221. glVertex2d(cntrX-x,cntrY+y);
  222. glVertex2d(cntrX-x,cntrY-y);
  223. glVertex2d(cntrX-y,cntrY-x);
  224. glVertex2d(cntrX+x,cntrY-y);
  225. glVertex2d(cntrX+y,cntrY-x);
  226.  
  227.  
  228. glEnd();
  229. }
  230.  
  231.  
  232.  
  233. }
  234. void init (void)
  235. {
  236. glClearColor (0.0 ,1.0 ,1.0, 0.0);
  237. glMatrixMode(GL_PROJECTION);
  238. glLoadIdentity();
  239. gluOrtho2D(-500, 500, -300, 700);
  240. }
  241.  
  242.  
  243.  
  244. int main(int argc, char** argv){
  245. glutInit(&argc, argv);
  246. glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
  247. glutInitWindowSize (500, 500);
  248. glutInitWindowPosition (100, 100);
  249. glutCreateWindow ("Shahid Minar");
  250. init ();
  251. glutDisplayFunc(Display);
  252. glutMainLoop();
  253. return 0;
  254. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement