四元数博大精深,用途之一图形学中的三维旋转。单纯从应用角度考虑,四元数可以以如下方式应用于旋转。
假定我们有一个经过原点的旋转轴
,三维空间内一向量
, 旋转角度
后(右手法则),变换至
。
其中
为单位向量即
,若用户输入或代码实时解算中非单位向量,可以先将其单位化。
,
.
首先,将旋转中所涉及的相关向量定义为纯四元数:
or
or
or
则,3D旋转可以通过四元数乘法来表示:
(1)
其中,
为单位四元数,
等价于
和
分别为
的
共轭和
逆。对于
单位四元数而言
。
根据式(1),结合四元数的乘法,可以完成一次旋转运算。
关于四元数的乘法:
可以根据Graßmann Product来计算:
即对于任意四元数
,
,
(2)
参考文献:
[1] https://krasjet.github.io/quaternion/
[2] https://www.zhihu.com/question/23005815/answer/33971127