openGL按照载体自身坐标系旋转

立方体在openGL下可以使用glRotatef(angle, x, y, z)进行旋转,但是此时的坐标系是固定的世界坐标系,比如说立方体绕z轴旋转某一角度后,立方体的x和y轴已经改变,但是此时如果想按照立方体本身的y轴旋转,使用glRotatef(angle, 0, 1, 0)后立方体仍然按世界坐标系的y轴旋转。如何能让立方体按照自身的坐标系旋转呢,可以使用glMultMatrixf(Q)实现,Q为四元数、欧拉角或方向余弦旋转矩阵。废话不说上代码

  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  glLoadIdentity();  //重置模型矩阵
  glMultMatrixf(I);  //改变坐标系仍要满足右手系
  glTranslatef(x, y, z); //移入屏幕
  glMultMatrixf(Q); //四元数旋转矩阵

 

  上图

       

 

 

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值