Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.98 KB | None | 0 0
  1. void ramie(double r1, double r2, double h, double d) {
  2.  
  3. double angle, x, y;
  4. glBegin(GL_TRIANGLE_FAN);
  5. glNormal3d(0.0, 0.0, -1.0);
  6. glColor3d(0.5, 0.5, 0);
  7. glVertex3d(0.0f, 0.0f, 0.0f);
  8. for (angle = 0.0f; angle <= (GL_PI); angle += (GL_PI / 8.0f))
  9. {
  10. x = -r1*sin(angle);
  11. y = -r1*cos(angle);
  12. glVertex3d(x, y, 0.0);
  13. }
  14. glEnd();
  15. glBegin(GL_QUAD_STRIP);
  16. glColor3d(0.5, 0.5, 0);
  17. for (angle = 0.0f; angle >= -(GL_PI); angle -= (GL_PI / 8.0f))
  18. {
  19. x = r1*sin(angle);
  20. y = r1*cos(angle);
  21. glNormal3d(sin(angle), cos(angle), 0.0);
  22. glVertex3d(x, y, h);
  23. glVertex3d(x, y, 0);
  24. }
  25. glEnd();
  26. glBegin(GL_TRIANGLE_FAN);
  27. glNormal3d(0.0, 0.0, 1.0);
  28. glColor3d(0.5, 0.5, 0);
  29. glVertex3d(0.0f, 0.0f, h);
  30. for (angle = 0.0; angle >= -(GL_PI); angle -= (GL_PI / 8.0f))
  31. {
  32. x = r1*sin(angle);
  33. y = r1*cos(angle);
  34. glVertex3d(x, y, h);
  35. }
  36. glEnd();
  37.  
  38. //double angle, x, y;
  39. glBegin(GL_TRIANGLE_FAN);
  40. glNormal3d(0.0, 0.0, -1.0);
  41. glColor3d(0.5, 0.5, 0);
  42. glVertex3d(0.0f + d, 0.0f, 0.0f);
  43. for (angle = GL_PI; angle <= (2.0f*GL_PI); angle += (GL_PI / 8.0f))
  44. {
  45. x = -r2*sin(angle);
  46. y = -r2*cos(angle);
  47. glVertex3d(x + d, y, 0.0);
  48. }
  49. glEnd();
  50. glBegin(GL_QUAD_STRIP);
  51. glColor3d(0.5, 0.5, 0);
  52. for (angle = -GL_PI; angle >= -(2.0f*GL_PI); angle -= (GL_PI / 8.0f))
  53. {
  54. x = r2*sin(angle);
  55. y = r2*cos(angle);
  56. glNormal3d(sin(angle), cos(angle), 0.0);
  57. glVertex3d(x + d, y, h);
  58. glVertex3d(x + d, y, 0);
  59. }
  60. glEnd();
  61. glBegin(GL_TRIANGLE_FAN);
  62. glNormal3d(0.0, 0.0, 1.0);
  63. glColor3d(0.5, 0.5, 0);
  64. glVertex3d(0.0f + d, 0.0f, h);
  65. for (angle = -GL_PI; angle >= -(2.0f*GL_PI); angle -= (GL_PI / 8.0f))
  66. {
  67. x = r2*sin(angle);
  68. y = r2*cos(angle);
  69. glVertex3d(x + d, y, h);
  70. }
  71. glEnd();
  72. glBegin(GL_QUADS); {
  73. glColor3d(0.5, 0.5, 0);
  74. float v[3][3] = { {d,r2,0.0},{0.0,r1,0.0},{0.0,r1,h} };
  75. float norm[3];
  76. calcNormal(v, norm);
  77. glNormal3d(norm[0], norm[1], norm[2]);
  78. glVertex3d(d, r2, 0.0);
  79. glVertex3d(0.0, r1, 0.0);
  80. glVertex3d(0.0, r1, h);
  81. glVertex3d(d, r2, h);
  82. }
  83. glEnd();
  84. glBegin(GL_QUADS); {
  85. glColor3d(0.5, 0.5, 0);
  86. float v[3][3] = { { d,r2,0.0 },{ d,-r2,0.0 },{ 0.0,-r1,0.0 } };
  87. float norm[3];
  88. calcNormal(v, norm);
  89. glNormal3d(norm[0], norm[1], norm[2]);
  90. glVertex3d(d, r2, 0.0);
  91. glVertex3d(d, -r2, 0.0);
  92. glVertex3d(0.0, -r1, 0.0);
  93. glVertex3d(0.0, r1, 0.0);
  94. }
  95. glEnd();
  96. glBegin(GL_QUADS); {
  97. glColor3d(0.5, 0.5, 0);
  98. float v[3][3] = { { d,-r2,0.0 },{ d,-r2,h },{ 0.0,-r1,h } };
  99. float norm[3];
  100. calcNormal(v, norm);
  101. glNormal3d(norm[0], norm[1], norm[2]);
  102. glVertex3d(d, -r2, 0.0);
  103. glVertex3d(d, -r2, h);
  104. glVertex3d(0.0, -r1, h);
  105. glVertex3d(0.0, -r1, 0.0);
  106. }
  107. glEnd();
  108. glBegin(GL_QUADS); {
  109. glColor3d(0.5, 0.5, 0);
  110. float v[3][3] = { { d,r2,h },{ 0.0,r1,h },{ 0.0,-r1,h } };
  111. float norm[3];
  112. calcNormal(v, norm);
  113. glNormal3d(norm[0], norm[1], norm[2]);
  114. glVertex3d(d, r2, h);
  115. glVertex3d(0.0, r1, h);
  116. glVertex3d(0.0, -r1, h);
  117. glVertex3d(d, -r2, h);
  118. }
  119. glEnd();
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement