我什么时候需要使用四元数?

pet*_*ust 20 quaternions

我多年来一直在进行2D和3D操作,包括图形,并且从未使用过四元数,因此我对它们没有感觉.我知道它们可用于某些欧拉角难以操作的操作,也可用于找到最佳拟合一组坐标所需的旋转(X1,X2 ...... XN,X =(xyz))到另一个(X1',X2'...... XN').

是否存在四元数必不可少的地方?是否存在使解决方案更优雅或更高效的地方?

Joe*_*oeG 17

它们具有比旋转矩阵更小的存储器占用面积,并且它们比矩阵和角度/轴表示更有效.

也:

  • 在两个四元数之间进行插值非常容易,这对于平滑的相机移动等非常有用.
  • 浮点四元数的单位归一化比矩阵表示具有更少的舍入缺陷.


Ben*_*Ben 5

与欧拉角相比,四元数具有许多优点,并且通常更适合 3D 旋转:

  • 四元数(或方向)之间的插值更容易(且定义明确):产生的运动具有围绕单个轴的恒定角速度,这通常在美学上更令人愉悦。这个过程称为“slerp”,对于动画/旋转混合至关重要。此外,四元数插值不会受到万向节锁的影响。
  • 它们很容易重新规范化。

缺点:

  • 主要缺点是它们需要更多的数学知识并且不如欧拉/卡丹尼克角直观。
  • 与仿射变换矩阵相比,四元数仅包含旋转,没有平移和缩放。