Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void ramie(double r1, double r2, double h, double d) {
- double angle, x, y;
- glBegin(GL_TRIANGLE_FAN);
- glNormal3d(0.0, 0.0, -1.0);
- glColor3d(0.5, 0.5, 0);
- glVertex3d(0.0f, 0.0f, 0.0f);
- for (angle = 0.0f; angle <= (GL_PI); angle += (GL_PI / 8.0f))
- {
- x = -r1*sin(angle);
- y = -r1*cos(angle);
- glVertex3d(x, y, 0.0);
- }
- glEnd();
- glBegin(GL_QUAD_STRIP);
- glColor3d(0.5, 0.5, 0);
- for (angle = 0.0f; angle >= -(GL_PI); angle -= (GL_PI / 8.0f))
- {
- x = r1*sin(angle);
- y = r1*cos(angle);
- glNormal3d(sin(angle), cos(angle), 0.0);
- glVertex3d(x, y, h);
- glVertex3d(x, y, 0);
- }
- glEnd();
- glBegin(GL_TRIANGLE_FAN);
- glNormal3d(0.0, 0.0, 1.0);
- glColor3d(0.5, 0.5, 0);
- glVertex3d(0.0f, 0.0f, h);
- for (angle = 0.0; angle >= -(GL_PI); angle -= (GL_PI / 8.0f))
- {
- x = r1*sin(angle);
- y = r1*cos(angle);
- glVertex3d(x, y, h);
- }
- glEnd();
- //double angle, x, y;
- glBegin(GL_TRIANGLE_FAN);
- glNormal3d(0.0, 0.0, -1.0);
- glColor3d(0.5, 0.5, 0);
- glVertex3d(0.0f + d, 0.0f, 0.0f);
- for (angle = GL_PI; angle <= (2.0f*GL_PI); angle += (GL_PI / 8.0f))
- {
- x = -r2*sin(angle);
- y = -r2*cos(angle);
- glVertex3d(x + d, y, 0.0);
- }
- glEnd();
- glBegin(GL_QUAD_STRIP);
- glColor3d(0.5, 0.5, 0);
- for (angle = -GL_PI; angle >= -(2.0f*GL_PI); angle -= (GL_PI / 8.0f))
- {
- x = r2*sin(angle);
- y = r2*cos(angle);
- glNormal3d(sin(angle), cos(angle), 0.0);
- glVertex3d(x + d, y, h);
- glVertex3d(x + d, y, 0);
- }
- glEnd();
- glBegin(GL_TRIANGLE_FAN);
- glNormal3d(0.0, 0.0, 1.0);
- glColor3d(0.5, 0.5, 0);
- glVertex3d(0.0f + d, 0.0f, h);
- for (angle = -GL_PI; angle >= -(2.0f*GL_PI); angle -= (GL_PI / 8.0f))
- {
- x = r2*sin(angle);
- y = r2*cos(angle);
- glVertex3d(x + d, y, h);
- }
- glEnd();
- glBegin(GL_QUADS); {
- glColor3d(0.5, 0.5, 0);
- float v[3][3] = { {d,r2,0.0},{0.0,r1,0.0},{0.0,r1,h} };
- float norm[3];
- calcNormal(v, norm);
- glNormal3d(norm[0], norm[1], norm[2]);
- glVertex3d(d, r2, 0.0);
- glVertex3d(0.0, r1, 0.0);
- glVertex3d(0.0, r1, h);
- glVertex3d(d, r2, h);
- }
- glEnd();
- glBegin(GL_QUADS); {
- glColor3d(0.5, 0.5, 0);
- float v[3][3] = { { d,r2,0.0 },{ d,-r2,0.0 },{ 0.0,-r1,0.0 } };
- float norm[3];
- calcNormal(v, norm);
- glNormal3d(norm[0], norm[1], norm[2]);
- glVertex3d(d, r2, 0.0);
- glVertex3d(d, -r2, 0.0);
- glVertex3d(0.0, -r1, 0.0);
- glVertex3d(0.0, r1, 0.0);
- }
- glEnd();
- glBegin(GL_QUADS); {
- glColor3d(0.5, 0.5, 0);
- float v[3][3] = { { d,-r2,0.0 },{ d,-r2,h },{ 0.0,-r1,h } };
- float norm[3];
- calcNormal(v, norm);
- glNormal3d(norm[0], norm[1], norm[2]);
- glVertex3d(d, -r2, 0.0);
- glVertex3d(d, -r2, h);
- glVertex3d(0.0, -r1, h);
- glVertex3d(0.0, -r1, 0.0);
- }
- glEnd();
- glBegin(GL_QUADS); {
- glColor3d(0.5, 0.5, 0);
- float v[3][3] = { { d,r2,h },{ 0.0,r1,h },{ 0.0,-r1,h } };
- float norm[3];
- calcNormal(v, norm);
- glNormal3d(norm[0], norm[1], norm[2]);
- glVertex3d(d, r2, h);
- glVertex3d(0.0, r1, h);
- glVertex3d(0.0, -r1, h);
- glVertex3d(d, -r2, h);
- }
- glEnd();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement