四元数

Quaternion
复数的四维延伸, 一种数学上的代数结构,用于在三维空间中表示旋转和方向。
四元数在计算机图形学、机器人学、航天器姿态控制等领域有广泛应用,因为它们可以方便地进行旋转的插值(Slerp)和避免万向节锁(Gimbal Lock)问题。

欧拉角描述旋转的结果,四元数描述旋转的过程。

q=w+xi+yj+zk

实数轴和三个虚轴都相互垂直,符合右手定则

i2=j2=k2=ijk=1

单位四元数的乘法表示四维空间的双旋转

ij=k,jk=i,ki=jji=k,kj=i,ik=j

Pasted image 20250514235629.png

以虚数 i 为例,i 的作用相当于将 jk 平面上的向量逆时针旋转 90

ij=k,ik=j,i(j)=k,i(k)=j

而 i 如果作用于 i 本身,则进入实数范围,i2=1

对于四元数中一般的单位向量 vv 左乘,相当于将与 v 垂直的平面逆时针旋转 90
而将沿着 v 的分量将进入实数范围,跑出三维虚空间

q=cosθ+vsinθ
q1=cosθvsinθ
任意一个向量在三维空间中绕向量 v 旋转 2θ 角:x=qxq1

描述三维的旋转

复数乘除法的几何意义是来描述二维的旋转,乘以一个复数,复数的模表示伸缩,复数的角度表示顺时针的旋转角度:如果想要将一个向量 x+iy 顺时针旋转 θ 角,只需要乘以模为 1 的向量 cosθ+isinθ,得到旋转后的向量 (cosθ+isinθ)(x+iy)

四元数描述三维的旋转类似
向量 p=(x1i,y1j,z1k)
q=w0+x0i+y0j+z0k

qpq1=(w0+x0i+y0j+z0k)(x1i,y1j,z1k)(w0x0iy0jz0k)

直观化展示:https://eater.net/quaternions