旋转向量与四元数

12

旋转向量直接存储旋转轴和旋转角度的大小,用于表示旋转。

在计算机图形学中,四元数似乎比旋转向量更常用来表示旋转。为什么计算机图形学中更倾向于使用四元数而不是旋转向量呢?


请查看以下链接以获取详细信息:http://math.stackexchange.com/questions/1732908/quaternion-for-beginner/1732961#1732961 - Ashwith Ullal
2个回答

17
四元数对于计算机来说更易处理(当然,作为人类,您不应该过于关心三维旋转):
  • 如果您想要连接两个以矢量表示的旋转,您需要将它们转换为四元数或矩阵形式(使用代价高昂的三角函数),而四元数可以通过经典的四元数乘法有效地连接。

  • 如果您想要使用以矢量格式表示的旋转来旋转点/向量,或者将其发送到GL/D3D作为矩阵,您需要将其转换为矩阵(再次使用代价高昂的三角函数)。另一方面,由于四元数已经编码了所需的正弦和余弦,因此它可以相当高效地转换为矩阵。

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

如果四元数似乎有点重,因为它们的“三维复数”解释,请不要过于关心它们的精确数学基础。只需开始理解它们的工作原理以及如何使用它们即可。从实际角度来看,它们只是一种隐式编码了正弦和余弦,用于有效转换和计算的轴角表示法。


0

关于为什么四元数有时比向量更受欢迎,以及可能的原因的详细解释,请参见这篇非常有趣的文章。在这个冗长但富有洞见的帖子中,您会发现对四元数有用性的不同看法。

简而言之 - 作者认为,我们实际上并不需要四元数,但由于它们的复杂和精细的特性,它们似乎非常吸引程序员。使用四元数表达的所有操作都可以使用向量表达。尽管如此,这种观点还是相当有争议的。


2
这篇文章需要带着一定的保留态度看待,忽略三角函数的低效以及旋转计算在3D中并不是人类所能理解的事实。当然,我们也可以使用矩阵,但轴角表示法远不如两者,因为它只在人机外设(如果需要的话)时才需要使用。 - Christian Rau

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接