我试图在投影平面中的原始对象的opengl中进行简单的旋转。我想像螺旋桨一样旋转物体,但我似乎无法让它正确。当我运行代码时,我的对象看起来像是缩小了自己(我知道它不是那个,但它旋转有趣)
void rotateStuff()
{
spin = spin - .5; // inc for spin
if(spin < 360)
{
spin = spin + 360;
}
glPushMatrix();
glTranslatef(150, 95, 0.0);
glRotatef(spin, 1.0, 0.0, 0.0);
glTranslatef(-150, -95, 0);
displayStuff();
glPopMatrix();
drawButton();
glutSwapBuffers();
}
这是我的对象的片段
glBegin(GL_POLYGON);
glVertex2i(50, 0);
glVertex2i(50, 75);
glVertex2i(150, 75);
glVertex2i(150, 0);
glEnd(); // end current shape
我觉得我的出身设置有问题但是有什么特别的?我是否正在翻译错误的来源?
答案 0 :(得分:0)
这是围绕x轴的旋转:glRotatef(spin, 1.0, 0.0, 0.0)
。
据推测,你希望x-y平面上的东西留在x-y平面上,
所以你想围绕z轴旋转:glRotatef(spin, 0.0, 0.0, 1.0)
。