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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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); //四元数旋转矩阵

 

  上图

       技术分享

 

技术分享

 

 技术分享

 





以上是关于openGL按照载体自身坐标系旋转的主要内容,如果未能解决你的问题,请参考以下文章

OpenGL——点的绘制(使用OpenGL来绘制可旋转坐标系的螺旋线)

OpenGL ES总结OpenGL坐标变换之平移及旋转

动作捕捉,系数转换各种问题

动作捕捉,系数转换,IK 等整理总结

当涉及旋转时,将鼠标坐标转换为 OpenGL 中的模型坐标

Unity中的Transform类