从三维旋转的角度简单介绍一下四元数。
$\hat{q}=xi+yj+zk+w=\hat{q}_v+q_w=(\hat{q}_v,q_w)$ 。$q_w$ 为实部,$\hat{q}_v$ 为虚部。$i,j,k$ 为虚数单位。
其中:$i^2=j^2=k^2=-1,\begin{cases}i=j\times k=-k\times j\\j=k\times i=-i\times k\\k=i\times j=-j\times i\end{cases}$ ,不满足交换律。
三维空间的点表示为 $\hat{P}=\hat{P}_v+0$ 。
性质:
$n(\hat{q})=n(\hat{q}^*),n(\hat{q}\hat{r})=n(\hat{q})n(\hat{r})$
证:$n(\hat{q}\hat{r})=\sqrt{\hat{q}\hat{r}(\hat{q}\hat{r})^*}=\sqrt{\hat{q}(\hat{r}\hat{r}^*)\hat{q}^*}=\sqrt{\hat{r}\hat{r}^*}\sqrt{\hat{q}\hat{q}^*}=n(\hat{q})n(\hat{r})$
若三维向量 $\Vert\hat{u}_q\Vert=1$ ,则 $\hat{q}=\sin\varphi\hat{u}_q+\cos\varphi$ 为单位四元数,$n(\hat{q})=1$ 。
性质:
由欧拉公式以及 $\hat{u}_q\hat{u}_q=-\hat{u}_q\cdot\hat{u}_q=-1$ 也是虚数单位,得 $\hat{q}=e^{\hat{u}_q\varphi}$
因此 $\hat{q}^t=e^{\hat{u}_q\varphi t}$ ,从 $\varphi\to\varphi t$ ,且显然 $\hat{q}^t$ 也是单位四元数
$\vec{v}$ 绕着单位向量 $\vec{u}$ 逆时针旋转 $\theta$ 时。关于 $\vec{u}$ 平行部分 $\vec{v}_{\parallel}$ 不受影响,垂直部分 $\vec{v}_{\perp}$ 绕 $\vec{u}$ 旋转。
考虑用两个垂直向量来表示这个旋转,其中一个是 $\vec{v}_{\perp}$ ,另一个是 $\vec{u}\times\vec{v}_{\perp}$ ,则旋转可以写成:
$$ \vec{v}_{\perp}'=\vec{v}_{\perp}\cos\theta+(\vec{u}\times\vec{v}_{\perp})\sin\theta\\ \vec{v}'=\vec{v}_{\perp}'+\vec{v}_{\parallel}=[\vec{v}_{\perp}\cos\theta+(\vec{u}\times\vec{v}_{\perp})\sin\theta]+\vec{v}_{\parallel} $$
令 $\hat{V}=\hat{v}$ ,$\hat{U}=\hat{u}$ ,$\hat{q}=\sin\theta\hat{u}+\cos\theta$ ,$\hat{p}=\sqrt{\hat{q}}=\sin{\theta\over 2}\hat{u}+\cos{\theta\over 2}$(单位四元数性质2)。
$$ \begin{aligned} \hat{V}'=\hat{V}_{\perp}'+\hat{V}_{\parallel}&=[\hat{V}_{\perp}\cos\theta+(\hat{u}\times\hat{v}_{\perp})\sin\theta]+\hat{V}_{\parallel}\\ &=[\hat{V}_{\perp}\cos\theta+(\hat{u}\times\hat{v}_{\perp}+0\hat{u}+0\hat{v}_{\perp}+0-\hat{u}\cdot\hat{v}_{\perp})\sin\theta]+\hat{V}_{\parallel}\\ &=[\hat{V}_{\perp}\cos\theta+(\hat{U}\hat{V}_{\perp})\sin\theta]+\hat{V}_{\parallel}\\ &=(\sin\theta\hat{U}+\cos\theta)\hat{V}_{\perp}+\hat{V}_{\parallel}\\ &=\hat{q}\hat{V}_{\perp}+\hat{V}_{\parallel} \end{aligned} $$
定理1:若 $\hat{V}=\hat{v}+0,\hat{q}=a\hat{u}+b$ ,且 $\hat{v}\parallel\hat{u}$ ,则 $\hat{q}\hat{V}=\hat{V}\hat{q}$ 。(平行叉乘为 $0$ 易证)
定理2:若 $\hat{V}=\hat{v}+0,\hat{q}=a\hat{u}+b$ ,且 $\hat{v}\perp\hat{u}$ ,则 $\hat{q}\hat{V}=\hat{V}\hat{q}^*$ 。(垂直点乘为 $0$ ,叉乘用共轭凑个负号)
经过巧妙(凑)的式子转化:
$$ \begin{aligned} \hat{V}'&=\hat{q}\hat{V}_{\perp}+\hat{V}_{\parallel}=1\hat{V}_{\parallel}+\hat{p}\hat{p}\hat{V}_{\perp}=\hat{p}\hat{p}^{-1}\hat{V}_{\parallel}+\hat{p}\hat{p}\hat{V}_{\perp}=\hat{p}\hat{p}^{*}\hat{V}_{\parallel}+\hat{p}\hat{p}\hat{V}_{\perp}\\ &=\hat{p}\hat{V}_{\parallel}\hat{p}^*+\hat{p}\hat{V}_{\perp}\hat{p}^*=\hat{p}(\hat{V}_{\parallel}+\hat{V}_{\perp})\hat{p}^*=\hat{p}\hat{V}\hat{p}^*=\hat{p}\hat{V}\hat{p}^{-1} \end{aligned} $$
令 $\phi_p(\hat{V})=\hat{p}\hat{V}\hat{p}^{-1}$ ,表示 $\vec{v}$ 绕着单位向量 $\vec{u}$ 轴逆时针旋转 $\theta$,其中 $\hat{p}=\sin{\theta\over 2}\hat{u}+\cos{\theta\over 2}$ 。
虽然用线性代数就可以直接写出三维旋转,但是四元数可以方便的表示旋转插值。
爷爷!你关注的博主更新啦!
@SkyWT
要学习打工知识了 😭