四元数用于绕多个旋转轴旋转几何体和点。它们存在于四个维度中,因此具有四个部分:w、x、y 和 z。由于 x、y 和 z 相互关联且类似,人们有时使用另一个字母来代表所有三个,v 是常见的表示。要表示它们,您应该将它们存储在 4 维 向量 中,如下所示:. 四元数用作 欧拉角 的替代方案。
四元数的优点[1]
因此,如果您选择了一些您想围绕其旋转几何体的单位长度 3D 向量 () 以及您想旋转几何体的度数 (),然后创建一个旋转四元数 ().
通常有两种形式来表示四元数,简写和长写。在简写表示法中,它以 w 和 v (x、y 和 z 的组合) 表示。
这可以使用 w、x、y 和 z 在长写表示法中表示
其中[2]:
如果四元数没有旋转,那么它的值为[3]:
这 4 个分量(**w, x, y** 和 **z**)可以分解成一个实数和三个虚数
其中 , 和 是虚数,使得 。由此,您可以得出以下结论
要求逆一个四元数,只需将x、y 和z 分量乘以-1。
当将两个四元数相乘时,顺序很重要()。
乘积定义为[4]
|
待办事项 添加并理解语句:(rotationQuaternion*pointQuaternion)*conjugateQuaternion 研究: [此处可见]
|
这是在两个四元数之间逐步插值的方法,例如获得两个四元数之间的中点(或其他点)。
在进行 SLERP 之前,您需要理解四元数的指数表示法。
如果您有一个四元数 a,并且您使用指数表示法将其提升到 t 次方,这意味着它将按指数 t 缩放四元数内部的角度。由于这仅仅是缩放所有角度,因此这意味着四元数的大小 () 仍然是 1。
如果您的第一个四元数是 q,第二个四元数是 r,并且您想找到它们之间的一个点 (p),它位于从 q 到 r 的 t 百分比处,其中 0 ≤ t ≤ 1。
最终方程定义为[5]
YouTube
维基百科页面
维基教科书