C++ OpenGL圆柱体

C++ OpenGL圆柱体,c++,opengl,glut,C++,Opengl,Glut,我正在用三元组来显示轴,轴上有3个圆柱体和3种不同的颜色。这是我的密码 glDisable(GL_LIGHTING); glClear(GL_COLOR_BUFFER_BIT); glColor3f(0,1,0); glBegin(GL_POLYGON); GLUquadricObj *obj = gluNewQuadric(); glRotated(90.0f, 1.0f, 0.0f, 0.0f); gluCylinder(obj, 1.0, 1.0, 10, 30, 30); glEnd

我正在用三元组来显示轴,轴上有3个圆柱体和3种不同的颜色。这是我的密码

glDisable(GL_LIGHTING);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0,1,0);
glBegin(GL_POLYGON);
GLUquadricObj *obj = gluNewQuadric();

glRotated(90.0f, 1.0f, 0.0f, 0.0f);
gluCylinder(obj, 1.0, 1.0, 10, 30, 30);

glEnd();

glEnable(GL_LIGHTING);

当我更改“glColor3f(0,1,0);”值时,它的颜色会发生变化,但我无法获得圆柱体的变化轴。它总是在z轴上。当我更改“glRotated(90.0f,1.0f,0.0f,0.0f);”值时,其仍在Z轴上表示。我也尝试过glRotatef函数,但它也不起作用。我应该使用哪个函数来更改圆柱体的轴。

您不应该在
glBegin()/glEnd()块内调用
gluchraine
。这里只允许GL命令的一小部分,
glColor
就是其中之一
glRotate
虽然不是(只会生成一个GL错误并将被忽略)。从代码中删除
glBegin()/glEnd()
对,旋转将实际起作用。

绝不能在
glBegin()/glEnd()块内调用
gluchrinder
。这里只允许GL命令的一小部分,
glColor
就是其中之一
glRotate
虽然不是(只会生成一个GL错误并将被忽略)。从代码中删除
glBegin()/glEnd()
对,旋转将真正起作用。

我知道代码中只有一个圆柱体,但在实现旋转后我会将其设为3个圆柱体。这可能是离题的,但据我所知,glBegin/glEnd和friends(也称为固定管道)被分离。您可能应该尝试学习一些更新的内容。我知道代码中只有1个圆柱体,但在实现旋转后我会将其设为3个圆柱体。这可能是离题的,但据我所知,glBegin/glEnd和friends(也称为固定管道)已被删除。你可能应该尝试学习一些更新的东西。