简单的原语旋转 Opengl c
Simple primitive rotation Opengl c
我正在尝试在投影平面中的原始对象的 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
我认为我的来源设置有问题,但究竟是什么问题?我翻译的来源有误吗?
这是绕 x 轴的旋转:glRotatef(spin, 1.0, 0.0, 0.0)
。
大概你想让x-y平面上的东西留在x-y平面上,
所以你想绕 z 轴旋转:glRotatef(spin, 0.0, 0.0, 1.0)
.
我正在尝试在投影平面中的原始对象的 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
我认为我的来源设置有问题,但究竟是什么问题?我翻译的来源有误吗?
这是绕 x 轴的旋转:glRotatef(spin, 1.0, 0.0, 0.0)
。
大概你想让x-y平面上的东西留在x-y平面上,
所以你想绕 z 轴旋转:glRotatef(spin, 0.0, 0.0, 1.0)
.