首页

Quaternion Rotation Lab

同一个对象,两层 cover,三种看旋转的方式。

一个可视化的 lab,讲单位 quaternion q=w+xi+yj+zkq = w + x\mathbf i + y\mathbf j + z\mathbf k、它的 3D rotation p=qpq1p' = qpq^{-1},以及同一个 SU(2) 变换的 Pauli-matrix 形式。

正在加载 3D quaternion 场景...

Axis-angle 形式

q=cos(36.0)+(0.35i+0.72j+0.59k)sin(36.0)q = \cos(36.0^{\circ}) + (0.35\mathbf i + 0.72\mathbf j + 0.59\mathbf k)\sin(36.0^{\circ})

Pauli-matrix 形式

(1.0000.0000.0001.000)\begin{pmatrix} 1.000 & 0.000 \\ 0.000 & 1.000 \end{pmatrix}

教学路径

从 quaternion 数到 Pauli matrix。

1. 单位 quaternion 就是一个旋转手柄

单位 quaternion 的 vector part 指向 rotation axis,scalar part 存着 half angle。

q=cos ⁣(θ2)+u^sin ⁣(θ2)q = \cos\!\left(\frac{\theta}{2}\right) + \hat{\mathbf u}\,\sin\!\left(\frac{\theta}{2}\right)

2. 用 conjugation 旋转向量

把 3D 向量写成纯 quaternion,旋转结果就是下面这个 conjugation 的 vector part。

p=qpq1p' = q\,p\,q^{-1}

3. 组合就是乘法

先做旋转 A 再做旋转 B,不是简单地把角度相加,而是 quaternion 乘法,所以顺序很重要。

qtotal=qBqAq_{\mathrm{total}} = q_B q_A

4. q 和 -q 描述的是同一个 3D 姿态

立方体转 360 度就回到原样,但 spinor 的符号翻转了。SU(2) 这个对象要转 720 度才能回到初始符号。

SO(3)SU(2)/{±I}\mathrm{SO}(3) \cong \mathrm{SU}(2) / \{\pm I\}

Pauli 之桥

单位 quaternion 和 SU(2) 用的是同样四个实数自由度。

把单位 quaternion 打包进一个复矩阵: U(q)=wIi(xσx+yσy+zσz)U(q) = wI - i(x\sigma_x + y\sigma_y + z\sigma_z)。 因为 w2+x2+y2+z2=1w^2 + x^2 + y^2 + z^2 = 1,这个矩阵是 unitary 的, 行列式为一。这正好就是 SU(2)。

这就是为什么一个 3D rotation 既可以描述成 quaternion 作用在向量上, 也可以描述成 Pauli-matrix 指数作用在 spinor 上: U=exp ⁣(iθ2n^ ⁣ ⁣σ)U = \exp\!\left(-\frac{i\theta}{2}\,\hat{\mathbf n}\!\cdot\!\boldsymbol{\sigma}\right)。 half angle 是两边共享的线索。

σx\sigma_x
(0110)\begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix}
σy\sigma_y
(0ii0)\begin{pmatrix} 0 & -i \\ i & 0 \end{pmatrix}
σz\sigma_z
(1001)\begin{pmatrix} 1 & 0 \\ 0 & -1 \end{pmatrix}

应用

同一套数学还会出现在哪里。

图形与游戏

相机朝向、角色骨骼和物体动画都用 quaternion,因为它能避免 gimbal lock,还能用 SLERP 平滑插值。

机器人与导航

无人机、手机和机械臂把 IMU 数据融合成姿态 quaternion,再转换成控制坐标系下的旋转。

量子力学

Pauli matrix 生成 SU(2)。一个 single-qubit gate 或 spin-1/2 旋转正是单位 quaternion 的矩阵孪生体。

U=exp ⁣(iθ2n^ ⁣ ⁣σ)U = \exp\!\left(-\frac{i\theta}{2}\,\hat{\mathbf n}\!\cdot\!\boldsymbol{\sigma}\right)

物理可视化

Bloch sphere 上的运动、角动量、刚体姿态,都能用同一套 axis-angle 和 double-cover 的思路来展示。