link: https://krasjet.github.io/quaternion/quaternion.pdf

复数

设两个复数分别写作$z_1=a+bi, z_2=c+di$,有: $$ z_1\cdot z_2=(ac-bd)+(bc+ad)i=\begin{bmatrix} a & -b \ b & a \ \end{bmatrix}\begin{bmatrix}c\d\end{bmatrix} $$ 由此可以写出一个复数$z_1$的矩阵形式为$\begin{bmatrix} a & -b \ b & a \ \end{bmatrix} = \sqrt{a^2+b^2}\begin{bmatrix} \cos\theta & -\sin\theta \ \sin\theta & \cos\theta \ \end{bmatrix}$ 其中$||z_1||=\sqrt{a^2+b^2}$,与$Re$夹角是$\theta$。 复数的极坐标形式:$z=re^{i\theta}$ ($Euler Equation: e^{i\theta}=\cos\theta+i\sin\theta$) 复数的相乘遵循交换律:$z_1z_2=z_2z_1$

三维空间的旋转

假设$\vec{v}$绕着$\vec{u}$旋转$\theta$,其中$\vec{u}$是单位向量表示的旋转轴,$\vec{v}=\vec{v_\parallel}+\vec{v_\perp}$ 定义$\vec{w}=\vec{u}\times\vec{v_\perp}$ 那么旋转以后的$\vec{v_\perp}’=\cos\theta\vec{v_\perp}+\sin\theta\vec{w}$ 由此得到$\vec{v}$绕着$\vec{u}$旋转后的表示是: $$ \vec{v}’=\vec{v_\parallel}+\cos\theta\vec{v_\perp}+\sin\theta(\vec{u}\times\vec{v_\perp}) $$ 叉乘遵循分配律,$\vec{u}\times\vec{v_\perp}=\vec{u}\times(\vec{v}-\vec{v_\parallel})=\vec{u}\times\vec{v}$ $$ \mathbf{v}’ = \cos(\theta)\mathbf{v} + (1 - \cos(\theta))(\mathbf{u} \cdot \mathbf{v})\mathbf{u} + \sin(\theta)(\mathbf{u} \times \mathbf{v}) $$

四元数

$q=a+bi+cj+dk,i^2=j^2=z^2=ijk=-1$ 四元数的乘法不符合交换律 同复数,有如下公式: $$ q_1q_2=\begin{bmatrix}a&-b&-c&-d\ b&a&-d&c\ c &d &a &-b\ d&-c&b&a\end{bmatrix}\begin{bmatrix}e\ f \ g\ h \end{bmatrix} $$ 由于不符合交换律,所以右乘结果不一样: $$ q_2q_1=\begin{bmatrix}a&-b&-c&-d\ b&a&d&-c\ c &-d &a &b\ d&c&-b&a\end{bmatrix}\begin{bmatrix}e\ f \ g\ h \end{bmatrix} $$ ($Grathmann$积)设任意四元数 $q_1=[s, \mathbf{v}],q_2 = [t, \mathbf{u}]$,$q_1q_2$的结果是 $$ q_1q_2 = [st - \mathbf{v} \cdot \mathbf{u}, st\mathbf{u} + tv\mathbf{v} + \mathbf{v} \times \mathbf{u}] $$ 四元数的逆:$q^{-1}=\frac{q*}{||q||^2}$ 纯四元数有:$q_1q_2=[-\vec{v}\cdot\vec{u}, \vec{v}\times\vec{u}]$

四元数与3D旋转

首先使用纯四元数表示《三维空间的旋转》部分得到的公式中的所有向量。 $\vec{v_\perp}’=\cos\theta\vec{v_\perp}+\sin\theta(\vec{u}\times\vec{v_\perp})$ 结合纯四元数的结果可以得到$uv_\perp=\vec{u}\times\vec{v_\perp}$(纯四元数按照标量写) 那么有$v_\perp’=(\cos\theta+\sin\theta u)v_\perp=qv_\perp$ $$q=\cos\theta+\sin\theta u=[\cos\theta, \vec{0}]+[0, \sin\theta\vec{u}]=[\cos\theta, \sin\theta\vec{u}]$$ $v’=v_\parallel+qv_\perp$ 令$p^2=q$,那么有$p=[\cos(\theta/2), sin(\theta/2)\vec{u}]$,可以得到$v’=pp^v_\parallel+ppv_\perp$。根据引理有$v’=pv_\parallel^+pv_\perp p^=pvp^=pvp^{-1}$。 求$q=[a,\vec{b}]$旋转轴以及角度的方法: $$ \theta=2\arccos(a) $$ $$ \vec{u}=\frac{b}{sin(\theta)} $$ 四元数与3D旋转是一个2对1满射同态

指数形式

$q=[\cos\theta,\sin\theta\vec{u}]$可以表示为$e^{u\theta}$

四元数插值

本部分留待后续补充(基本就是用不同的数值分析插值方法)

欧拉角

泰特布莱恩角:$(x,y,z)$ 欧拉角:$(a,b,a’)$ 问题:存在万向节死锁,丢失一个自由度