cocos2D-X源码分析之从cocos2D-X学习OpenGL(19)----旋转表示法

原创 2016年06月15日 15:11:28

       从数学上表示旋转,可以有三种表示方法:矩阵法,欧拉角法和四元数法,我们之前已经介绍了矩阵法,它有个问题,就是容易造成万向节死锁,所谓万向节死锁,就是当绕一个轴旋转到90度的时候,再绕另外两个轴旋转的结果都是一样的,也就是说少了一个自由度,另外矩阵法其中有无用的数据,造成内存的浪费。

       欧拉角法是由欧拉在十八世纪提出,它由三个角表示:俯仰角,yaw偏航角,roll滚转角。


struct Euler{
    btScalar yaw;
    btScalar pitch;
    btScalar roll;
};
       欧拉角的表示方法很简洁,只用三个角度就可以表示旋转,但是它也有万向节死锁的情况,而且进行线性插值的时候,由于角度有360度周期的问题,所以变化往往会有不好的效果,所以就有另外一种四元数的表示方法。

       四元数是一种超复数,它的表示就是有三个虚部的复数,表示法如下:


       由于i,k,j的表示很像笛卡尔坐标系的三个轴,所以可以合在一起表示一个向量,即旋转轴,于是可以用四元数表示旋转如下:


       关于四元数更多数学上的介绍可以参考:http://www.cnblogs.com/mengdd/archive/2013/08/05/3238223.html

       cocos2d-x中使用Quaternion类表示四元数,定义如下:

class CC_DLL Quaternion
{
public:

    /**
     * The x-value of the quaternion's vector component.
     */
    float x;
    /**
     * The y-value of the quaternion's vector component.
     */
    float y;
    /**
     * The z-value of the quaternion's vector component.
     */
    float z;
    /**
     * The scalar component of the quaternion.
     */
    float w;
    .........
}
      下一篇介绍模型,网格和材质


       能力不足,水平有限,如有错误,欢迎指出。

       

版权声明:本文为博主原创文章,未经博主允许不得转载。

cocos2D-X源码分析之从cocos2D-X学习OpenGL(1)----cocos2D-X渲染结构

cocos2D-X 3.0渲染结构代码讲解,也是cocos2D-X源码讲解系列文章和从cocos2D-X学习OpenGL系列文章的开始...
  • bill_man
  • bill_man
  • 2014年06月29日 22:17
  • 12782

cocos2D-X源码分析之从cocos2D-X学习OpenGL(4)---混合

之前在项目中就使用过混合,但是研究的不深入,近期美术的一个需求让我下决心重新深入的研究了一下混合以及它在cocos2d-x中的使用,在这里分享给大家。...
  • bill_man
  • bill_man
  • 2015年12月30日 20:12
  • 3921

Cocos2d-x学习笔记(19)(TestCpp源码分析-3)

本章主要介绍
  • yuxikuo_1
  • yuxikuo_1
  • 2014年06月13日 21:25
  • 1133

Cocos2D-X2.2.3学习笔记19(地图系统)

  • 2014年07月10日 17:18
  • 4.43MB
  • 下载

\cocos2d-x学习笔记(19)--label 、label atlas.rar

  • 2012年08月31日 16:49
  • 671KB
  • 下载

地球人己阻止不了程序猿们学习cocos2d-x了-学习笔记04 .源码

  • 2012年11月01日 11:06
  • 5.34MB
  • 下载

Cocos2d-x学习笔记(17)(TestCpp源码分析-1)

TestCpp源码基于Cocos2d-x2
  • yuxikuo_1
  • yuxikuo_1
  • 2014年06月13日 21:01
  • 1121

cocos2d-x 斗地主源码

  • 2017年12月27日 18:01
  • 162KB
  • 下载

cocos2d-x 打飞机源码与资源

  • 2017年12月27日 14:57
  • 4.78MB
  • 下载

4.[开源][安卓]cocos2d-x-3-框架源码

  • 2015年02月23日 20:26
  • 61.63MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:cocos2D-X源码分析之从cocos2D-X学习OpenGL(19)----旋转表示法
举报原因:
原因补充:

(最多只允许输入30个字)