四元数计算器 - 4D 数学与 3D 旋转

执行四元数加法、减法、乘法、共轭、范数和逆元运算,适用于 3D 图形和机器人学。

输入四元数的 w、x、y、z 分量,选择运算,即可立即获得结果。

四元数计算器 - 4D 数学与 3D 旋转
执行四元数加法、减法、乘法、共轭、范数和逆元运算,适用于 3D 图形和机器人学。

关于四元数计算器

四元数是一种扩展复数的数系。复数只有一个虚数单位 i,而四元数有三个:i、j 和 k。四元数写作 q = w + xi + yj + zk,其中 w 是实部(标量部分),x、y、z 是虚部(向量分量)。四元数由爱尔兰数学家威廉·罗恩·哈密顿于 1843 年发现,此后在计算机图形学、航空航天工程、机器人学和物理仿真中变得不可或缺。 与欧拉角等其他旋转表示相比,四元数的关键优势在于它们能避免万向节锁死——即两个旋转轴重合,导致一个自由度丢失的现象。四元数把 3D 旋转表示为一个单一、连续且可插值的对象。因此,它们成为平滑动画、电子游戏中的角色运动以及航天器姿态控制的首选。 此四元数计算器支持六种基本运算。加法和减法按分量进行:只需分别对四个分量 (w, x, y, z) 相加或相减。乘法则更复杂,因为四元数乘法不满足交换律——也就是说,通常 q1 × q2 ≠ q2 × q1。乘积遵循哈密顿乘积规则:(w1w2 - x1x2 - y1y2 - z1z2) + (w1x2 + x1w2 + y1z2 - z1y2)i + (w1y2 - x1z2 + y1w2 + z1x2)j + (w1z2 + x1y2 - y1x2 + z1w2)k。 四元数 q = w + xi + yj + zk 的共轭为 q* = w - xi - yj - zk——它会让三个虚部分量取反,同时保持实部不变。共轭类似于复共轭,并用于计算逆元。 四元数的范数(也称模长)为 |q| = √(w² + x² + y² + z²)。单位四元数的范数等于 1,在表示没有缩放的纯旋转时尤其重要。 四元数的逆元为 q⁻¹ = q* / |q|²,其中 q* 是共轭,|q|² 是范数的平方。对于单位四元数,逆元等于共轭。逆元可用于撤销旋转——如果 q 将向量旋转某个角度,q⁻¹ 会将其旋转回来。此计算器可即时处理所有这些运算,对从事 3D 变换、动画系统或高等数学的人非常有价值。

四元数计算器示例

通过这些示例了解常见的四元数运算。

输入结果说明
q1 = 1+2i+3j+4k, q2 = 5+6i+7j+8k(加法)6 + 8i + 10j + 12k按分量相加:四个分量分别独立相加。实部:1+5=6,i:2+6=8,j:3+7=10,k:4+8=12。
q1 = 0+1i+0j+0k, q2 = 0+0i+1j+0k(乘法)0 + 0i + 0j + 1k不满足交换律的哈密顿乘积:i × j = k。注意 j × i = -k,这说明乘法不满足交换律。
q = 3 - 1i + 2j + 5k(共轭)3 + 1i - 2j - 5k共轭会让三个虚部全部取反,同时保持实部(标量部分)不变。
q = 1+1i+1j+1k(范数)2|q| = √(1²+1²+1²+1²) = √4 = 2。范数用于衡量四元数的大小。

如何使用四元数计算器

  1. 从下拉菜单中选择要执行的运算(加法、减法、乘法、共轭、范数或逆元)。
  2. 输入第一个四元数 q1 的四个分量 (w, x, y, z)。对于二元运算,还需输入第二个四元数 q2 的分量。
  3. 点击计算查看结果。二元运算返回四元数;范数返回标量;逆元返回四元数。
  4. 查看下方显示的结果。对于乘法,请记住顺序很重要——q1 × q2 ≠ q2 × q1。
  5. 点击重置清空所有字段并开始新的计算。

四元数计算器常见问题

什么是四元数?
四元数是形如 q = w + xi + yj + zk 的四维数,其中 w 是标量(实)部分,x、y、z 是向量(虚)部分,并满足 i² = j² = k² = ijk = -1。它们扩展了复数,并被广泛用于表示没有万向节锁死的 3D 旋转。
为什么四元数乘法不满足交换律?
虚数单位 i、j、k 遵循 ij = k、ji = -k、jk = i、kj = -i、ki = j、ik = -j 的规则。由于乘法顺序会改变某些叉乘项的符号,q1 × q2 通常不等于 q2 × q1。这与 3D 旋转矩阵的行为相呼应。
四元数如何表示 3D 旋转?
绕单位轴 (ax, ay, az) 旋转角度 θ 可编码为 q = cos(θ/2) + sin(θ/2)·(ax·i + ay·j + az·k)。得到的四元数范数为 1(单位四元数)。要旋转向量 v,可计算 q × v × q⁻¹,其中 v 被视为 w=0 的纯四元数。
什么是单位四元数,为什么重要?
单位四元数的范数等于 1。单位四元数在乘法下构成一个群,是图形学和机器人学中表示 3D 姿态的标准方式。将任意四元数除以其范数即可得到对应的单位四元数。非单位四元数会把旋转与缩放结合在一起。
共轭和逆元有什么区别?
共轭 q* = w - xi - yj - zk 只是让虚部取反。逆元 q⁻¹ = q* / |q|² 则将共轭除以范数的平方。对于单位四元数 (|q| = 1),逆元和共轭相同;对于非单位四元数,它们不同。
我可以用这个计算器做基于四元数的动画插值(SLERP)吗?
此计算器可计算理解和实现 SLERP(球面线性插值)所需的基本代数运算。SLERP 本身需要计算 q1 × (q1⁻¹ × q2)^t,你可以使用这里提供的乘法和逆元运算逐步构建。