Advertisement
Guest User

SsamOlej.pl

a guest
Mar 17th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.61 KB | None | 0 0
  1.  
  2. void szescian(void)
  3. {
  4. glBegin(GL_QUADS);
  5.  
  6. glColor3d(1, 0.5, 0);
  7. glVertex3d(20, 20, 20);
  8. glVertex3d(-20, 20, 20);
  9. glVertex3d(-20, -20, 20);
  10. glVertex3d(20, -20, 20);
  11.  
  12. glColor3d(0, 0.5, 1);
  13. glVertex3d(20, 20, 20);
  14. glVertex3d(20, -20, 20);
  15. glVertex3d(20, -20, -20);
  16. glVertex3d(20, 20, -20);
  17.  
  18. glColor3d(1, 0, 0.5);
  19. glVertex3d(20, 20, 20);
  20. glVertex3d(20, 20, -20);
  21. glVertex3d(-20, 20, -20);
  22. glVertex3d(-20, 20, 20);
  23.  
  24. glColor3d(0.5, 0, 1);
  25. glVertex3d(-20, 20, -20);
  26. glVertex3d(20, 20, -20);
  27. glVertex3d(20, -20, -20);
  28. glVertex3d(-20, -20, -20);
  29.  
  30. glColor3d(0, 0.5, 0);
  31. glVertex3d(-20, 20, 20);
  32. glVertex3d(-20, 20, -20);
  33. glVertex3d(-20, -20, -20);
  34. glVertex3d(-20, -20, 20);
  35.  
  36. glColor3d(0.5, 0.5, 0.5);
  37. glVertex3d(20, -20, 20);
  38. glVertex3d(-20, -20, 20);
  39. glVertex3d(-20, -20, -20);
  40. glVertex3d(20, -20, -20);
  41.  
  42. glEnd();
  43. }
  44.  
  45. void walec(double r, double h)
  46. {
  47. double PI = 3.14, alpha,x,y;
  48.  
  49. glBegin(GL_TRIANGLE_FAN);
  50. glColor3d(1, 0.5, 0);
  51. glVertex3d(0, 0, 0);
  52.  
  53. for (alpha = 0.0; alpha <= 2 * PI; alpha += PI / 8) {
  54. x = r*sin(alpha);
  55. y = r*cos(alpha);
  56. glVertex3d(x, y, 0);
  57. }
  58.  
  59. glEnd();
  60.  
  61. glBegin(GL_QUAD_STRIP);
  62. glColor3d(1, 0, 0.5);
  63.  
  64. for (alpha = 0.0; alpha <= 2 * PI; alpha += PI / 8) {
  65. x = r*sin(alpha);
  66. y = r*cos(alpha);
  67. glVertex3d(x, y, 0);
  68. glVertex3d(x, y, h);
  69. }
  70.  
  71. glEnd();
  72.  
  73. glBegin(GL_TRIANGLE_FAN);
  74. glColor3d(1, 0.5, 0);
  75. glVertex3d(0, 0, h);
  76.  
  77. for (alpha = 0.0; alpha >= -2 * PI; alpha -= PI / 8) {
  78. x = r*sin(alpha);
  79. y = r*cos(alpha);
  80. glVertex3d(x, y, h);
  81. }
  82.  
  83. glEnd();
  84. }
  85.  
  86. void ramie(double r1, double r2, double h, double d)
  87. {
  88. double PI = 3.14, alpha, x, y;
  89.  
  90. glBegin(GL_TRIANGLE_FAN);
  91. glColor3d(1, 0.5, 0);
  92. glVertex3d(0, 0, 0);
  93.  
  94. for (alpha = PI; alpha <= 2 * PI; alpha += PI / 8) {
  95. x = r1*sin(alpha);
  96. y = r1*cos(alpha);
  97. glVertex3d(x, y, 0);
  98. }
  99.  
  100. glEnd();
  101.  
  102. glBegin(GL_QUAD_STRIP);
  103. glColor3d(1, 0, 0.5);
  104.  
  105. for (alpha = PI; alpha <= 2 * PI; alpha += PI / 8) {
  106. x = r1*sin(alpha);
  107. y = r1*cos(alpha);
  108. glVertex3d(x, y, 0);
  109. glVertex3d(x, y, h);
  110. }
  111.  
  112. glEnd();
  113.  
  114. glBegin(GL_TRIANGLE_FAN);
  115. glColor3d(1, 0.5, 0);
  116. glVertex3d(0, 0, h);
  117.  
  118. for (alpha = 0.0; alpha >= - PI; alpha -= PI / 8) {
  119. x = r1*sin(alpha);
  120. y = r1*cos(alpha);
  121. glVertex3d(x, y, h);
  122. }
  123.  
  124. glEnd();
  125.  
  126.  
  127.  
  128. glBegin(GL_QUADS);
  129.  
  130. glColor3d(1, 0.5, 0);
  131. glVertex3d(0, r1, h);
  132. glVertex3d(0, -r1, h);
  133. glVertex3d(d, -r2, h);
  134. glVertex3d(d, r2, h);
  135.  
  136.  
  137. glVertex3d(0, -r1, 0);
  138. glVertex3d(0, r1, 0);
  139. glVertex3d(d, r2, 0);
  140. glVertex3d(d, -r2, 0);
  141.  
  142.  
  143. glColor3d(1, 0, 0.5);
  144. glVertex3d(0, r1, 0);
  145. glVertex3d(0, r1, h);
  146. glVertex3d(d, r2, h);
  147. glVertex3d(d, r2, 0);
  148.  
  149.  
  150. glVertex3d(0, -r1, h);
  151. glVertex3d(0, -r1, 0);
  152. glVertex3d(d, -r2, 0);
  153. glVertex3d(d, -r2, h);
  154. glEnd();
  155.  
  156.  
  157.  
  158. glBegin(GL_TRIANGLE_FAN);
  159. glColor3d(1, 0.5, 0);
  160. glVertex3d(d, 0, 0);
  161.  
  162. for (alpha = 0.0; alpha <= PI; alpha += PI / 8) {
  163. x = r2*sin(alpha);
  164. y = r2*cos(alpha);
  165. glVertex3d(d+x, y, 0);
  166. }
  167.  
  168. glEnd();
  169.  
  170. glBegin(GL_QUAD_STRIP);
  171. glColor3d(1, 0, 0.5);
  172.  
  173. for (alpha = 0.0; alpha <= PI; alpha += PI / 8) {
  174. x = r2*sin(alpha);
  175. y = r2*cos(alpha);
  176. glVertex3d(d+x, y, 0);
  177. glVertex3d(d+x, y, h);
  178. }
  179.  
  180. glEnd();
  181.  
  182. glBegin(GL_TRIANGLE_FAN);
  183. glColor3d(1, 0.5, 0);
  184. glVertex3d(d, 0, h);
  185.  
  186. for (alpha = -PI; alpha >= -2 * PI; alpha -= PI / 8) {
  187. x = r2*sin(alpha);
  188. y = r2*cos(alpha);
  189. glVertex3d(d+x, y, h);
  190. }
  191.  
  192. glEnd();
  193. }
  194.  
  195. int element = 3;
  196. double R1 = 30, R2 = 20, H = 10, D = 100;
  197.  
  198.  
  199.  
  200. switch (element) {
  201. case 1:
  202. szescian();
  203. break;
  204. case 2:
  205. walec(R1, H);
  206. break;
  207. case 3:
  208. ramie(R1, R2, H, D);
  209. }
  210.  
  211.  
  212.  
  213.  
  214.  
  215. case WM_KEYDOWN:
  216. {
  217. if (wParam == VK_UP)
  218. xRot -= 5.0f;
  219.  
  220. if (wParam == VK_DOWN)
  221. xRot += 5.0f;
  222.  
  223. if (wParam == VK_LEFT)
  224. yRot -= 5.0f;
  225.  
  226. if (wParam == VK_RIGHT)
  227. yRot += 5.0f;
  228.  
  229. xRot = (const int)xRot % 360;
  230. yRot = (const int)yRot % 360;
  231.  
  232. InvalidateRect(hWnd, NULL, FALSE);
  233.  
  234. if (wParam == 'Y')
  235. R1 += 1;
  236. if (wParam == 'H')
  237. R1 -= 1;
  238. if (wParam == 'U')
  239. R2 += 1;
  240. if (wParam == 'J')
  241. R2 -= 1;
  242. if (wParam == 'I')
  243. H += 1;
  244. if (wParam == 'K')
  245. H -= 1;
  246. if (wParam == 'O')
  247. D += 1;
  248. if (wParam == 'L')
  249. D -= 1;
  250.  
  251. }
  252. break;
  253.  
  254. // A menu command
  255. case WM_COMMAND:
  256. {
  257. switch (LOWORD(wParam))
  258. {
  259. // Exit the program
  260. case ID_FILE_EXIT:
  261. DestroyWindow(hWnd);
  262. break;
  263. case ID_ELEMENT_SZESCIAN:
  264. element = 1;
  265. break;
  266. case ID_ELEMENT_WALEC:
  267. element = 2;
  268. break;
  269. case ID_ELEMENT_RAMIE:
  270. element = 3;
  271. break;
  272.  
  273. }
  274. RenderScene();
  275. SwapBuffers(hDC);
  276. }
  277. break;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement