Opengl立方体旋转问题我改变xrot,yrot,zrot值,想让立方体按分别按x=1,y=1,z=1轴旋转如下代码错误,无论改变xrot,yrot,zrot哪一个,令两个都受影响,不能正确按上述轴旋转\x05glRotatef(xrot,1.0f,0.0f,0.0f);\x05glR

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/11 13:42:24
Opengl立方体旋转问题我改变xrot,yrot,zrot值,想让立方体按分别按x=1,y=1,z=1轴旋转如下代码错误,无论改变xrot,yrot,zrot哪一个,令两个都受影响,不能正确按上述轴旋转\x05glRotatef(xrot,1.0f,0.0f,0.0f);\x05glR

Opengl立方体旋转问题我改变xrot,yrot,zrot值,想让立方体按分别按x=1,y=1,z=1轴旋转如下代码错误,无论改变xrot,yrot,zrot哪一个,令两个都受影响,不能正确按上述轴旋转\x05glRotatef(xrot,1.0f,0.0f,0.0f);\x05glR
Opengl立方体旋转问题
我改变xrot,yrot,zrot值,想让立方体按分别按x=1,y=1,z=1轴旋转
如下代码错误,无论改变xrot,yrot,zrot哪一个,令两个都受影响,不能正确按上述轴旋转
\x05glRotatef(xrot,1.0f,0.0f,0.0f);
\x05glRotatef(yrot,0.0f,01.0f,0.0f);
\x05glRotatef(zrot,0.0f,0.0f,1.0f);
然后我改成
\x05glPushMatrix();
\x05glRotatef(xrot,1.0f,0.0f,0.0f);
\x05glPopMatrix();
\x05glPushMatrix();
\x05glRotatef(yrot,0.0f,01.0f,0.0f);
\x05glPopMatrix();
\x05glPushMatrix();
\x05glRotatef(zrot,0.0f,0.0f,1.0f);
\x05glPopMatrix();
结果无论改变xrot,yrot,zrot哪一个,立方体丝毫不动
无需指正,请直接给出正确的完整(!完整!)代码,请给全(否则追问起来又找不到人了,影响效率,

Opengl立方体旋转问题我改变xrot,yrot,zrot值,想让立方体按分别按x=1,y=1,z=1轴旋转如下代码错误,无论改变xrot,yrot,zrot哪一个,令两个都受影响,不能正确按上述轴旋转\x05glRotatef(xrot,1.0f,0.0f,0.0f);\x05glR
xrot+=0.3f;
yrot+=0.2f;
zrot+=0.4f;
glRotatef(xrot,1.0f,0.0f,0.0f);
glRotatef(yrot,0.0f,1.0f,0.0f);
glRotatef(zrot,0.0f,0.0f,1.0f);
要想得到旋转的效果,必须放在一个计时器里,并且每次都要绘制场景

这是当然的,你glPushMatrix() 与glPopMtrix()之间已经屏蔽了任何的东西,就是说这里面的旋转没作用,要想单独改变在某个方向的旋转我建议还是写个判断语句比较好。或者在glPushMatrix() 与glPopMtrix()之间绘制图形。即是:
glPushMatrix();
旋转;
绘制图形;
glPopMatrix();
加入我们的Op...

全部展开

这是当然的,你glPushMatrix() 与glPopMtrix()之间已经屏蔽了任何的东西,就是说这里面的旋转没作用,要想单独改变在某个方向的旋转我建议还是写个判断语句比较好。或者在glPushMatrix() 与glPopMtrix()之间绘制图形。即是:
glPushMatrix();
旋转;
绘制图形;
glPopMatrix();
加入我们的OpenGL群吧,里面有新手,也有老鸟与高手。
111595985

收起

肯定是你没有进行刷新,没有刷新旋转的结果没有被绘制。
可以使用MFC的定时器,设置一个时间定时进行刷新,则新进行的旋转结果就能被绘制出来了。
你先进行测试,不行的话给我留个邮箱,我回头发给你。