通过复制线在opengl中创建一个像圆柱形的圆柱体

时间:2014-06-11 16:28:42

标签: opengl

#include <glut.h>

void Draw() {
glClear(GL_COLOR_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(0.0,0.0,-4.0);
glPointSize(9);
glBegin(GL_LINES);

    glVertex3f(0.0, 0.0, 0.0);
    glVertex3f(1.0, 1.0, 0.0);

glEnd();
glFlush();
}

void Initialize() {
glClearColor(0.0, 0.0, 0.0, 0.0);
//glViewport(0,0,9,9);
glMatrixMode(GL_PROJECTION);

gluPerspective(45.0, 1.00, 1.0, 10.0);
}

int main(int iArgc, char** cppArgv) {
glutInit(&iArgc, cppArgv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(250, 250);
glutInitWindowPosition(200, 200);
glutCreateWindow("cse 404");
Initialize();
glutDisplayFunc(Draw);
glutMainLoop();
return 0;
}

我正在尝试用gl_lines创建一个像圆形的圆柱体,即一个接一个地复制线条并以葡萄酒的方式旋转整个东西。

GLUquadricObj *quadratic;
quadratic = gluNewQuadric();
glRotatef(90.0f, 0.0f, 1.0f, 0.0f);
gluCylinder(quadratic, 5.0, 5.0, 5.0 ,25, 25);

上面的代码可以给我圆柱但是我不想要这个,我想要一个圆柱状的形状,通过使用gl_lines一个接一个地复制线来创建,这是我进一步工作所需要的。

1 个答案:

答案 0 :(得分:0)

使用立即模式,您可以在堆栈中绘制多个圆圈。 每个圆圈都可以通过以下方式轻松绘制:

glBegin(GL_LINE_LOOP);
    for ( angleRad=0 to 2 )
        glVertex3f(radius*cos(angleRad),radius*sin(angleRad),stackLevel);
glEnd();