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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhangchao0426/article/details/53783410

立方体在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); //四元数旋转矩阵

 

  上图

       

 

 

 

猜你喜欢

转载自blog.csdn.net/zhangchao0426/article/details/53783410