1
我无法在OpenGL中旋转椭圆。所以,我有一些代码来绘制一个椭圆如下:opengl:旋转椭圆
glPushAttrib(GL_CURRENT_BIT);
glColor3f(1.0f, 0.0f, 0.0f);
glLineWidth(2.0);
glPushMatrix();
glTranslatef(0, 0, 0); // ellipse centre
glBegin(GL_LINE_LOOP);
float inc = (float) M_PI/500.0;
for (GLfloat i = 0; i < M_PI * 2; i+=inc)
{
float x = cos(i) * 0.4;
float y = sin(i) * 0.4;
glVertex2f(x, y);
}
glEnd();
glPopMatrix();
glPopAttrib();
这将产生一个画面像这样:
现在我想要做的就是这个椭圆按顺时针方向旋转。所以我在两者之间增加了一个glrotate,但结果并不是我所期望的。
所以,我不喜欢的东西:
glPushAttrib(GL_CURRENT_BIT);
glColor3f(1.0f, 0.0f, 0.0f);
glLineWidth(2.0);
glPushMatrix();
glTranslatef(0, 0, 0);
glRotatef(-90, 1, 1, 0);
glBegin(GL_LINE_LOOP);
float inc = (float) M_PI/500.0;
for (GLfloat i = 0; i < M_PI * 2; i+=inc)
{
float x = cos(i) * 0.4;
float y = sin(i) * 0.4;
glVertex2f(x, y);
}
glEnd();
glPopMatrix();
glPopAttrib();
这产生这是简单地倒塌的图像。我想要做的是沿指定的中心旋转椭圆。此外,我试着玩弄glRotatef的各种参数,但无法按预期做到。由此产生的图像看起来像:
是的,我发现就像我发布,但我也有其他问题!我会发布一个新的问题来强调......! – Luca