OpenGL 旋转问题

wxfasdic_12 2009-04-15 10:02:26
现在写一个旋转系统,可是不能达到自由旋转,苦恼。希望高手给指点...

问题如下:
利用OpenGL里的函数glRotatef(。。。)操作,是对坐标轴旋转,希望是物体旋转,而不改变坐标系;
同时,OpenGL里的矩阵都是右乘法则吗?

谢谢各位啦...




...全文
155 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxfasdic_12 2009-04-17
  • 打赏
  • 举报
回复
谢谢你的思路,我明白了...哈哈!

GLfloat mView[16];
glGetFloatv(GL_MODELVIEW_MATRIX,mView);//存储当前系统中的模型矩阵
glLoadIdentity();//恢复坐标系
glRotatef(m_angle,m_axis.getX(),m_axis.getY(),m_axis.getZ());//进行旋转
glMultMatrixf(mView);//叠加之前的变换效果
RenderScene();//渲染场景
feng0hua0 2009-04-17
  • 打赏
  • 举报
回复
第一次旋转前用glPushMatrix()
第一次旋转完再用glPopMatrix()
这样坐标系状态就回到了第一次旋转前.
然后你再进行第二次旋转,第二次旋转前后也记得用上glPushMatrix()和glPopMatrix().
wxfasdic_12 2009-04-17
  • 打赏
  • 举报
回复
你的方法不就是旋转的坐标系吗...

当我第二次旋转,并且是绕第一副图中的坐标系下的x轴旋转如何办得到呢...
wxfasdic_12 2009-04-17
  • 打赏
  • 举报
回复
谢谢大家啦...
lizhigang34 2009-04-16
  • 打赏
  • 举报
回复
我不清楚你到底是想怎样的旋转物体,,可以构造欧拉角来旋转物体..
下面的图说明了如何让Z轴转向空间中的一个点P

这是Irrlicht论坛上一位老外教我的..
http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=32485&postdays=0&postorder=asc&start=15&sid=5390bc1ca28f6bc11ae3a7aae227bf4c
wxfasdic_12 2009-04-16
  • 打赏
  • 举报
回复
glRotatef(),我看书上说的是转动的坐标系,当你重置后,上一次的效果不就消失了吗...怎么累积?

所以,要实现连续旋转,又要固定坐标系,需要什么东西来实现呢?
IONPhantom 2009-04-16
  • 打赏
  • 举报
回复
glRotatef就是对物体进行本地旋转,只不过每个物体都应该在画之前设置glRotatef,如果画完一个不重置画下一个物体也会跟上一个进行同样的变换

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧