旋转矢量通过直接存储旋转轴和角度大小来表示旋转。
四元数似乎更多地用于表示旋转。为什么四元数优先于计算机图形学中的旋转向量?
答案 0 :(得分:16)
对于计算机而言,四元数更易于计算(对于人类而言,无论如何都不应该为3D旋转而烦恼):
当你想在矢量表示中连接两个旋转时,你会怎么做?你必须将它们转换为四元数或矩阵形式(使用昂贵的三角函数)才能做到这一点(并且可能又回来),而四元数可以通过使用经典的四元数乘法有效连接。
如果要使用矢量格式的旋转旋转点/矢量,或者将其作为矩阵发送到GL / D3D,您会怎么做?您将其转换为矩阵(再次使用昂贵的三角函数)。另一方面,四元数非常有效地转换为矩阵,因为它已经编码了所需的正弦和余弦。
因此,矩阵和四元数是更合适的旋转表示。从这两个四元数更紧凑,它们也很容易转换为轴角表示(并再次返回),但使用三角函数。因此,如果您需要外围设备的轴角度信息(只有我们人类有时需要实际的旋转轴和角度,计算机并不真正关心)您仍然可以使用它,但对于内部表示和计算四元数或矩阵是一个更好的选择。
如果四元数首先用“三维复数”解释似乎有点沉重,那么就不要理会它们的确切数学基础。开始了解它们的工作原理以及如何使用它们。实际上,它们只是一种轴角度表示,但具有隐式编码的正弦和余弦,这是有效转换和计算所必需的。
答案 1 :(得分:0)
为了更好地解释为什么使用quaterions并且有时优先使用vector,请参阅this very intersting article。在this lengthy but insightful thread中,您会发现对四元数的有用性持反对意见。
TL; DR - 作者的观点是我们宁愿不需要quaterions,但由于它们错综复杂的性质,它们似乎对程序员非常有吸引力。使用四元数进行的所有操作都可以使用向量表示。这个观点虽然颇具争议。