Graphics 旋转向量与四元数

Graphics 旋转向量与四元数,graphics,matrix,rotation,Graphics,Matrix,Rotation,旋转矢量通过直接存储旋转轴和角度大小来表示旋转 四元数似乎更多地用于表示旋转。为什么在计算机图形学中四元数优先于旋转向量?有关使用四元数的潜在原因以及有时优先于向量的原因的详细解释,请参阅。在这本书中,你会发现关于四元数有用性的相反观点 TL;作者博士的观点是,我们并不真正需要四元数,但由于它们的复杂性,它们似乎对程序员非常有吸引力。使用四元数表示的所有操作都可以使用向量表示。不过,这一观点颇有争议。四元数更容易计算,当然,对于计算机来说(作为一个人,你不应该为3D旋转而烦恼): 在向量表示法

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


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

有关使用四元数的潜在原因以及有时优先于向量的原因的详细解释,请参阅。在这本书中,你会发现关于四元数有用性的相反观点


TL;作者博士的观点是,我们并不真正需要四元数,但由于它们的复杂性,它们似乎对程序员非常有吸引力。使用四元数表示的所有操作都可以使用向量表示。不过,这一观点颇有争议。

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

  • 在向量表示法中,如果要连接两个旋转,您会怎么做?您必须将它们转换为四元数或矩阵形式(使用昂贵的三角函数)才能实现这一点(可能还会再转换),而四元数可以通过使用经典的四元数乘法有效地连接起来

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

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


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

好吧,这篇文章必须谨慎对待,忽略三角函数的低效性和事实,3D中的旋转计算并不意味着人类能够理解。当然,也可以使用矩阵,但轴角度表示远不如两者,因为它仅在人机外围设备上需要(如果需要的话)。