Opengl立方体旋转问题

我改变xrot,yrot,zrot值,想让立方体按分别按x=1,y=1,z=1轴旋转如下代码错误,无论改变xrot,yrot,zrot哪一个,令两个都受影响,不能正确按上... 我改变xrot,yrot,zrot值,想让立方体按分别按x=1,y=1,z=1轴旋转
如下代码错误,无论改变xrot,yrot,zrot哪一个,令两个都受影响,不能正确按上述轴旋转
glRotatef(xrot,1.0f,0.0f,0.0f);
glRotatef(yrot,0.0f,01.0f,0.0f);
glRotatef(zrot,0.0f,0.0f,1.0f);
然后我改成
glPushMatrix();
glRotatef(xrot,1.0f,0.0f,0.0f);
glPopMatrix();

glPushMatrix();
glRotatef(yrot,0.0f,01.0f,0.0f);
glPopMatrix();

glPushMatrix();
glRotatef(zrot,0.0f,0.0f,1.0f);
glPopMatrix();
结果无论改变xrot,yrot,zrot哪一个,立方体丝毫不动
===============================
无需指正,请直接给出正确的完整(!完整!)代码,请给全(否则追问起来又找不到人了,影响效率,)谢谢
到底怎么弄啊~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
展开
培志吖4333
2011-06-08 · TA获得超过6.2万个赞
知道大有可为答主
回答量:2.9万
采纳率:0%
帮助的人:2000万
展开全部
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);
要想得到旋转的效果,必须放在一个计时器里,并且每次都要绘制场景
提个问也要注册
2011-06-07 · TA获得超过763个赞
知道答主
回答量:151
采纳率:0%
帮助的人:61.7万
展开全部
这是当然的,你glPushMatrix() 与glPopMtrix()之间已经屏蔽了任何的东西,就是说这里面的旋转没作用,要想单独改变在某个方向的旋转我建议还是写个判断语句比较好。或者在glPushMatrix() 与glPopMtrix()之间绘制图形。即是:
glPushMatrix();
旋转;
绘制图形;
glPopMatrix();
加入我们的OpenGL群吧,里面有新手,也有老鸟与高手。
111595985
追问
判断语句没办法保留当前旋转后的矩阵啊,总是会回到原来的样子再重新换周转
你说第二种方法试了,转的依旧很乱啊。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-06-07
展开全部
肯定是你没有进行刷新,没有刷新旋转的结果没有被绘制。
可以使用MFC的定时器,设置一个时间定时进行刷新,则新进行的旋转结果就能被绘制出来了。
你先进行测试,不行的话给我留个邮箱,我回头发给你。
追问
不是刷新问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式