多年来我一直在执行 2D 和 3D 操作,包括图形,并且从未使用过四元数,所以我对它们没有感觉。我知道它们可用于在欧拉角中难以进行的某些操作,并且它们可用于找到最适合一组坐标(X1,X2...XN,X=(xyz))所需的旋转到另一个(X1',X2'... XN')。
有没有四元数必不可少的地方?是否有让解决方案更优雅或更高效的地方?
多年来我一直在执行 2D 和 3D 操作,包括图形,并且从未使用过四元数,所以我对它们没有感觉。我知道它们可用于在欧拉角中难以进行的某些操作,并且它们可用于找到最适合一组坐标(X1,X2...XN,X=(xyz))所需的旋转到另一个(X1',X2'... XN')。
有没有四元数必不可少的地方?是否有让解决方案更优雅或更高效的地方?
它们比旋转矩阵具有更小的内存占用,并且比矩阵和角度/轴表示更有效。
还:
四元数比欧拉角有很多优点,并且通常更适合 3D 旋转:
缺点:
使用四元数,您还可以处理万向节锁的问题。当您想要执行任意旋转时,它们更容易使用。
四元数的优点
缺点。
四元数相对于矩阵的优势不仅在于计算速度更快,而且主要是因为围绕任意角度的连续旋转的矩阵表示最终会导致可怕的浮点舍入误差,并且不再表示正确的仿射旋转。“恢复”旋转矩阵在计算上比归一化四元数更昂贵。因此,应该选择四元数而不是纯旋转矩阵。
与欧拉角相比,它们更易于组合并且避免了云台锁定的问题。
与旋转矩阵相比,它们在数值上更稳定,并且表示(4 个数字)更紧凑。