关于“绕坐标轴的旋转”和“鼠标控制物体的旋转”(一)

本文探讨了在OpenGL中如何实现物体的旋转,特别是解决glRotatef函数导致的旋转积累问题。通过理解矩阵变换和固定旋转顺序,可以实现绕坐标轴的独立旋转。文中提到了一种保存和应用旋转矩阵的方法,以确保各个转轴的旋转效果不互相影响,并讨论了为何通常使用heading、pitch和rolling角度而非直接的x、y、z轴角度来表示物体姿态。
摘要由CSDN通过智能技术生成

前一阵子,听小西藏说要让物体随心所欲的跟我走。于是就开始了对物体的调教第一步。

首先,作为一个OpenGL菜鸟,我对于glRotatef这种基本函数的理解还不深,碰到了和这个人同样的困难。

Case 1:

某解答:一次调用

  glLoadIdentity();	//重置当前Modelview矩阵
  glRotatef(x轴, v_x角度)
  glRotatef(y轴, v_x角度)
  glRotatef(z轴, v_x角度)
  glTranslatef(-1.5f, 0.0f, -10.0f);	
来完成任务的, 注意这个调用的顺序很重要。

问:这些我都清楚,但是实际情况和我们想象有差别,每一次glRotatef都有积累,第二次glRotatef的时候就是在上次旋转的基础上进行的,所以3个旋转有相关性。
例如:默认的x轴是水平从左到右的,,但是我先来对y轴旋转一个90后,x就是垂直显示器向里了(也就是原来的-z方向),这个时候再执行glRotatef(x轴, v_x角度)的效果就是绕-z旋转的效果,而不是饶原x轴(也就是水平从显示左边到右边)的效果了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值