文章目录

引言
四元数是一种数学对象,用于在四维空间中表示旋转和方向。它由一个实数部分(标量)和三个虚数部分组成,通常表示为:
q = a + bi + cj + dk
其中:
- ( a ) 是四元数的实数部分(标量)。
- ( b, c, d ) 是四元数的虚数部分的系数。
- ( i, j, k ) 是虚数单位,它们满足以下乘法规则:
i2 = j2 = k2 = ijk = -1
这些虚数单位的乘法规则定义了四元数的乘法规则,使得四元数乘法是非交换的(即 pq ≠ qp)和非结合的(即 (pq)r ≠ p(qr))。
四元数中包含了三个虚数维度,他们都和实数轴垂直,而且他们之间也相互垂直
历史由来
四元数的历史可以追溯到1843年,由爱尔兰数学家威廉·罗文·哈密顿(William Rowan Hamilton)发明。哈密顿在研究如何将复数扩展到更高维度时,提出了四元数的概念。
1. 四元数的发明:
哈密顿在1843年发明了四元数,作为复数的扩展。复数可以看作是二维的,而四元数则扩展到了四维。
2. 哈密顿的灵感:
哈密顿在都柏林的皇家运河(Royal Canal)边散步时,突然得到了四元数的灵感。他立刻将这个发现刻在了附近的布鲁穆桥(Brougham Bridge,现称为金雀花桥 Broom Bridge)上。
3. 四元数与复数的关系:
四元数是复数的不可交换延伸。复数可以看作是平面上的点,而四元数则代表着一个四维空间。
4. 四元数的数学特性:
四元数形成了一个在实数上的四维结合代数,并且包括复数,但不与复数组成结合代数。
5. 四元数的非交换性:
四元数的乘法不符合交换律,这是它与传统数学运算的主要区别之一。
6. 四元数的推广:
哈密顿最初尝试发明“三元数”作为复数在三维空间的推广,但最终发现这是不可能的。他转而研究并成功发明了四元数。
7. 四元数的重要性:
四元数成为数学史上第一个非交换代数,它引发了代数学的一次解放,并打开了现代抽象代数的大门,是数学史上的一个里程碑。
这些信息概述了四元数的由来和它在数学史上的重要性。哈密顿的这一发现不仅在数学领域产生了深远影响,而且在物理学、计算机图形学和工程学等领域也得到了广泛应用。
四元数的性质
1. 表示旋转
四元数提供了一种简洁且高效的方式来表示三维空间中的旋转。一个四元数 q 可以表示绕单位向量 ( u = (ux, uy, uz) ) 旋转 ( θ ) 角度的旋转,
q = a + bi + cj + dk
其中:
2. 单位四元数:
单位四元数(其模长为1)用于表示旋转。非单位四元数可以通过归一化转换为单位四元数,这在处理三维空间的旋转时非常有用。
3. 共轭和范数:
4. 逆四元数:
5. 插值:
四元数用于球面线性插值(Slerp),这是一种在两个旋转之间进行平滑过渡的方法。
6. 转换到/从旋转矩阵:
四元数可以方便地转换为三维空间的旋转矩阵,反之亦然。这种转换使得四元数可以与现有的线性代数库和工具无缝集成。
四元数的优点
四元数在运算性能上相比于旋转矩阵具有以下优势:
1. 表示:
四元数使用四个实数来表示旋转,而旋转矩阵需要九个实数。四元数具有更简洁的表示方式。
2. 插值和融合:
四元数可以进行平滑的插值和融合操作,这在动画和游戏开发中非常有用,可以实现平滑的旋转效果。球面线性插值(Slerp)是四元数特有的,它允许在两个旋转之间进行平滑过渡。
3. 无奇异性:
与旋转矩阵和欧拉角不同,四元数不存在奇异性。每个四元数都对应一个唯一的旋转,不存在两个不同的四元数表示相同的旋转。这种独特性使得四元数在处理旋转时更为可靠,并能有效地解决万向锁问题。
4. 避免万向锁问题:
四元数由于其独特的表示方式,可以有效地避免万向锁(Gimbal Lock)问题,这是在使用欧拉角表示旋转时可能遇到的问题。万向锁会导致在特定的旋转状态下失去一个自由度,从而无法进行某些旋转。四元数通过四个自由度表示旋转,从而避免了这个问题。