什么是四元数
四元数将三维空间的旋转拓展到思维空间,在旋转和方向的变化方面,优于欧拉角和变换矩阵。因为四元数把三维空间中的绕三个轴向的旋转变换为四维空间中绕一个轴向的旋转,从而使其比欧拉角的直接插值能产生更为平滑和连续的旋转,因此被广泛用于游戏世界中的旋转设置。
四元数的定义
一个四元树由四个浮点数定义:qx, qy, qz和qw。在数学形式上,它表示为
q = iqx+jqy+kqz+qw = qv + qw i^2=j^2=k^2=-1
qv = (qx, qy, qz)成为四元数的虚部,qw称为四元数的实部。
四元数与旋转矩阵的相互转化
将四元数Q = (qx, qy, qz, qw)转化为一个对应的旋转矩阵Mq
Mq = [1-s(qy^2+qz^2) s(qxqy-qwqz) s(qxqz+qwqy) 0
s(qxqy+qwqz) 1-s(qx