Facebook
From Botched Agouti, 6 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 264
  1. void ramie(double r1, double r2, double h, double d)
  2. {
  3.         double angle, x, y;
  4.         glColor3d(0, 64, 128);
  5.         glBegin(GL_TRIANGLE_FAN);
  6.         glVertex3d(0.0f, 0.0f, 0.0f);
  7.         for (angle = GL_PI; angle <= (2.0f*GL_PI); angle += (GL_PI / 8.0f))
  8.         {
  9.                 x = r1*sin(angle);
  10.                 y = r1*cos(angle);
  11.                 glVertex3d(x, y, 0.0);
  12.         }
  13.         glEnd();
  14.         glFrontFace(GL_CW);
  15.         glBegin(GL_QUAD_STRIP);
  16.         for (angle = (GL_PI); angle <= (2.0f * GL_PI); angle += (GL_PI / 8.0f))
  17.         {
  18.                 x = r1*sin(angle);
  19.                 y = r1*cos(angle);
  20.                 glVertex3d(x, y, h);
  21.                 glVertex3d(x, y, 0);
  22.         }
  23.         glEnd();
  24.         glFrontFace(GL_CCW);
  25.         glBegin(GL_TRIANGLE_FAN);
  26.         glVertex3d(0.0f, 0.0f, h);
  27.         for (angle = 0.0f; angle >= -(GL_PI); angle -= (GL_PI / 8.0f))
  28.         {
  29.                 x = r1*sin(angle);
  30.                 y = r1*cos(angle);
  31.                 glVertex3d(x, y, h);
  32.         }
  33.         glEnd();
  34.  
  35.         glBegin(GL_QUADS);
  36.         glColor3d(1, 0.5, 0);
  37.         glVertex3d(0, r1, h);
  38.         glVertex3d(0, -r1, h);
  39.         glVertex3d(d, -r2, h);
  40.         glVertex3d(d, r2, h);
  41.         glColor3d(1, 0.5, 0);
  42.         glVertex3d(0, r1, 0);
  43.         glVertex3d(0, r1, h);
  44.         glVertex3d(d, r2, h);
  45.         glVertex3d(d, r2, 0);
  46.         glColor3d(1, 0.5, 0);
  47.         glVertex3d(0, r1, 0);
  48.         glVertex3d(d, r2, 0);
  49.         glVertex3d(d, -r2, 0);
  50.         glVertex3d(0, -r1, 0);
  51.         glColor3d(1, 0.5, 0);
  52.         glVertex3d(0, -r1, 0);
  53.         glVertex3d(d, -r2, 0);
  54.         glVertex3d(d, -r2, h);
  55.         glVertex3d(0, -r1, h);
  56.         glEnd();
  57.         glColor3d(0, 64, 128);
  58.         glBegin(GL_TRIANGLE_FAN);
  59.         glVertex3d(d, 0.0f, 0.0f);
  60.         for (angle = 0; angle <= (GL_PI); angle += (GL_PI / 8.0f))
  61.         {
  62.                 x = r2*sin(angle) + d;
  63.                 y = r2*cos(angle);
  64.                 glVertex3d(x, y, 0.0);
  65.         }
  66.         glEnd();
  67.         glFrontFace(GL_CW);
  68.         glBegin(GL_QUAD_STRIP);
  69.         for (angle = 0; angle <= GL_PI; angle += (GL_PI / 8.0f))
  70.         {
  71.                 x = r2*sin(angle) + d;
  72.                 y = r2*cos(angle);
  73.                 glVertex3d(x, y, h);
  74.                 glVertex3d(x, y, 0);
  75.         }
  76.         glEnd();
  77.         glFrontFace(GL_CCW);
  78.         glBegin(GL_TRIANGLE_FAN);
  79.         glVertex3d(d, 0.0f, h);
  80.         for (angle = -(GL_PI); angle >= -(2.0f * GL_PI); angle -= (GL_PI / 8.0f))
  81.         {
  82.                 x = r2*sin(angle) + d;
  83.                 y = r2*cos(angle);
  84.                 glVertex3d(x, y, h);
  85.         }
  86.         glEnd();
  87.  
  88. }