12

旋转向量通过直接存储旋转轴和角度大小来表示旋转。

四元数似乎更多地用于表示旋转。为什么在计算机图形学中四元数比旋转向量更受欢迎?

4

2 回答 2

17

当然,对于计算机来说,四元数更容易计算(作为人类,你不应该为 3D 旋转而烦恼):

  • 当你想在向量表示中连接两个旋转时你会怎么做?您必须将它们转换为四元数或矩阵形式(使用昂贵的三角函数)才能做到这一点(并且可能再次返回),而四元数可以通过使用经典的四元数乘法有效地连接。

  • 当您想使用矢量格式的旋转来旋转点/矢量或将其作为矩阵发送到 GL/D3D 时,您会怎么做?您将其转换为矩阵(再次使用昂贵的三角函数)。另一方面,四元数非常有效地转换为矩阵,因为它已经编码了所需的正弦和余弦。

所以矩阵和四元数是更合适的旋转表示。这两个四元数更加紧凑,并且它们也很容易转换为轴角表示(然后再转换回来),尽管使用三角函数。因此,如果您需要外围设备的轴角信息(只有我们人类有时需要实际的旋转轴和角度,计算机并不真正关心)您仍然可以使用它,但对于内部表示和计算,四元数或矩阵是一个更好的选择。

如果四元数的“3维复数”解释一开始看起来有点沉重,请不要理会它们的确切数学基础。刚开始了解它们是如何工作的以及如何使用它们。实际上,它们只是一种轴角表示,但具有隐式编码的正弦和余弦,这是高效转换和计算所必需的。

于 2012-06-07T07:27:52.123 回答
0

要很好地解释为什么使用四元数并且有时优于向量的潜在原因,请参阅这篇非常有趣的文章。在这个冗长但有见地的线程中,您会发现关于四元数有用性的反对意见。

TL;DR - 作者的观点是,我们实际上并不需要四元数,但由于它们错综复杂的性质,它们似乎对程序员非常有吸引力。使用四元数表达的所有操作都可以使用向量来表达。不过这个观点颇有争议。

于 2012-06-07T06:32:44.537 回答