四元数与空间旋转

单位四元数（Unit quaternion）可以用于表示三维空间裡的旋转。它与常用的另外两种表示方式（三维正交矩阵和欧拉角）是等价的，但是避免了欧拉角表示法中的万向锁问题。比起三维正交矩阵表示，四元数表示能够更方便地给出旋转的转轴与旋转角。

基本方法
用四元数来表示旋转要解决两个问题，一是如何用四元数表示三维空间裡的点，二是如何用四元数表示三维空间的旋转。

四元数表示空间中的点 
若三维空间裡的一个点的笛卡尔坐标为 (,,)，则它用纯四元数（类似于纯虚数，即实部为0的四元数）++ 表示。

单位四元数表示一个三维空间旋转 
设  为一个单位四元数，而  是一个纯四元数，定义

则 () 也是一个纯四元数，可以证明  确实表示一个旋转，这个旋转将空间的点  旋转为空间的另一个点 ()。

与正交矩阵表示的关系 
四元数的表示与正交矩阵表示是等价的，这可以通过直接的代数计算得到。

仿照关于单位复数的欧拉公式的证明方法，可以得到单位四元数的欧拉公式：

显然，当 =1, ==0 的时候就回到一般的欧拉公式。

设

（通过下面的计算可以知道，=0，即计算结果是纯四元数）

则

为简便起见，令

省略号表示由第一项通过简单的轮换可以得到的项。最后得到四元数的矩阵表示为

设

运用简单的三角恒等变形可以得到，

 
容易验证，()是正交矩阵，且行列式为+1，于是我们得到了四元数对应于正交矩阵的关系。即我们证明了的确表示三维空间中的一个旋转。进一步由旋转的正交矩阵表示的相关知识知，上式中的  就是旋转角。

旋转轴与旋转角 
由四元数的结合律马上可以得到，若为单位纯四元数，则

这表明在旋转操作下不变，也就是给出旋转的旋转轴（当然也给出旋转的旋转轴），不妨取=，由四元数的欧拉公式我们马上知道，任给一个单位四元数，计算它的虚部，我们就马上可以知道转轴是什么。

同时，根据四元数的正交矩阵表示，我们又可以马上得到，计算一个单位四元数的实部，它的反余弦值给出旋转角的一半。于是我们马上可以看到用四元数相对于正交矩阵表示的优势：在四元数表示下，计算转轴和旋转角变得异常简单。

进一步地，这表明了三维空间中的每一个旋转都可以用单位四元数表出。若进一步要求  非负，则这种表出是唯一的。

旋转操作的复合 
显然有：

于是两个旋转操作的复合，只需要将对应的单位四元数相乘，这一点比欧拉角表示要简单。

与超球面、典型群、自旋群的关系 
首先很容易看到，单位四元数与3-球面3（或三维实射影空间，RP3）同构。

其次，根据单位四元数的矩阵表示，我们又知道，存在一个单位四元数到特殊正交群 SO(3) 的同态，但这不是同构。给定一个角 ， 2π+ 与  对应的正交矩阵相同，但是由欧拉公式给出的单位四元数不同（恰好相反）。实际上，这反映了在三维空间中旋转 2π 弧度和旋转 4π 弧度是不等价的，参见旋量。

事实上，单位四元数群与自旋群 Spin(3) 同构。这也表明，3与自旋群 Spin(3) 同构。进一步地，它们微分同胚。

另一方面，单位四元数群与复数域上的2-球面同构，于是与特殊正交群 SO(2,C) 同构，而后者实际上就是特殊酉群 SU(2)。3 与 SU(2) 也是微分同胚的。

参考

Simon L. Altman (1986) Rotations, Quaternions, and Double Groups, Dover Publications.
Du Val, Patrick (1964), "Homographies, quaternions, and rotations". Oxford, Clarendon Press (Oxford mathematical monographs). LCCN 64056979

外部連結 
 線代啟示錄—四元數與三維空間旋轉
 四元數與旋轉

四元數
三维旋转
刚体力学
三维计算机图形学