旋转的数学表达:欧拉角、轴向角、四元数与矩阵
本文发布于游戏程序员刘宇的个人博客,长期更新,转载请注明源地址https://www.cnblogs.com/xiaohutu/p/10979936.html 数学,是人类对客观世界中数量关系和空间形式本质特征进行研究的科学。对同样的某一特征或者关系,可以根据需求用不同的数学符号、定义和过程来表达。在游戏引擎中,我们也有很多这样的例子,比如本文说到的旋转。 欧拉角 旋转是一个过程,一个物体围绕周或者点角度变化的过程。为了描述这个过程我们必须有参照物,于是我们先定义一个世界坐标系,笛卡尔坐标系。 欧拉角用 分别来表示这个物体相对三个坐标系的夹角,这是由数学家欧拉首先提出而得名的。 然而仅仅有 (x, y, z) 来表示旋转是不够的,还有两个因素: 首先是 旋转顺序 ,从各个轴上进行角度旋转时xyz先后的不同会得到不同的结果。我们称这个顺序定义为 顺规 ,下面一段是维基百科的定义: 在经典力学里,时常用zxz顺规来设定欧拉角;照着第二个转动轴的轴名,简称为x顺规。另外,还有别的欧拉角组。合法的欧拉角组中,唯一的限制是,任何两个连续的旋转,必须绕着不同的转动轴旋转。因此,一共有12种顺规。例如,y顺规,第二个转动轴是y-轴,时常用在量子力学、核子物理学、粒子物理学。另外,还有一种顺规,xyz顺规,是用在航空航天工程学; 按(z-x-z, x