数学基础:四元数
四元数定义
四元数(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.