图形学数学基础:四元数

发布时间 2023-10-07 18:36:20作者: 明明1109

四元数定义

四元数(quaternion)是一个复数,带1个实部+3个虚部:

\[\tag{1} q=s+ia+jb+kc \]

其中,虚数项系数a、b、c为实数;参数s也是实数,称为标量部分(scalar part)。参数i、j、k为虚数单位,有如下特性:

\[\tag{2} \begin{aligned} i^2=j^2=k^2=-1, \\ ij=-ji=k,\\ jk=-kj=i,\\ ki=-ik=j \end{aligned} \]

四元数特性

四元数加法

四元数加法定义:

\[\tag{3} q_1+q_2=(s_1+s_2)+i(a_1+a_2)+j(b_1+b_2)+k(c_1+c_2) \]

四元数乘法

四元数乘法定义利用(2)得到:

\[\tag{4} \begin{aligned} q_1q_2&=(s_1+ia_1+jb_1+kc_1)(s_2+ia_2+jb_2+kc_2)\\ &=s_1(s_2+ia_2+jb_2+kc_2)+ia_1(s_2+ia_2+jb_2+kc_2)+jb_1(s_2+ia_2+jb_2+kc_2)+kc_1(s_2+ia_2+jb_2+kc_2)\\ &=(s_1s_2+i^2a_1a_2+j^2b_1b_2+k^2c_1c_2)+i(s_1a_2+a_1s_2)+j(s_1b_2+b_1s_2)+k(s_1c_2+c_1s_2)+\\ &\quad+ija_1b_2+jib_1a_2+ika_1c_2+kic_1a_2+jkb_1c_2+kjc_1b_2\\ &=(s_1s_2-a_1a_2-b_1b_2-c_1c_2)+i(s_1a_2+a_1s_2)+j(s_1b_2+b_1s_2)+k(s_1c_2+c_1s_2)+\\ &\quad+ij(a_1b_2-b_1a_2)+ik(a_1c_2-c_1a_2)+jk(b_1c_2-c_1b_2)\\ &=(s_1s_2-a_1a_2-b_1b_2-c_1c_2)+i(s_1a_2+a_1s_2)+j(s_1b_2+b_1s_2)+k(s_1c_2+c_1s_2)+\\ &\quad+k(a_1b_2-b_1a_2)-j(a_1c_2-c_1a_2)+i(b_1c_2-c_1b_2)\\ &=(s_1s_2-a_1a_2-b_1b_2-c_1c_2)+i(s_1a_2+a_1s_2+b_1c_2-c_1b_2)\\ &\quad+j(s_1b_2+b_1s_2-a_1c_2+c_1a_2)+k(s_1c_2+c_1s_2+a_1b_2-b_1a_2) \end{aligned} \]

四元数的排列法

\[\tag{5} q=(s,v) \]

其中,向量v=(a,b,c),s为实数。

下面用四元数的排列法表示四元数运算:

  • 四元数加法

\[\tag{6} q_1+q_2=(s_1+s_2,v_1+v_2) \]

  • 四元数乘法

\[\tag{7} q_1q_2=(s_1s_2-v_1\cdot v_2, s_1v_2+s_2v_1+v_1\times v_2) \]

  • 四元数的平方

\[\tag{8} |q|^2=s^2+v\cdot v \]

  • 四元数的逆

\[\tag{9} q^{-1}={1\over |q|^2}(s,-v) \\ \implies qq^{-1}=q^{-1}q=(1,0) \]

参考

[1]DonaldHearn,M.PaulineBaker,赫恩,等.计算机图形学(第四版)[M].电子工业出版社,2014.