让四元数在两个向量之间旋转

Pup*_*ppy 5 math geometry

我有一对矢量.如何创建从一个旋转到另一个的四元数?

MBo*_*MBo 9

甲单位四元数q = COS(F)+ Ü*SIN(F)表示矢量的旋转v由角度2*F围绕轴线ü.

如果你的向量是vw,那么我们应该对它们进行归一化,然后计算它们之间的角度为2*F = ArcCos(Dot(v,w)).旋转轴方向矢量u =标准化(VectorProduct(v,w)).现在我们可以构建所需的旋转四元数.

  • 请注意,案例v = -w需要特殊处理. (6认同)
  • 在计算旋转轴 **u** 以维持单位四元数之后,将其归一化也可能是一个好主意,因为两个单位向量的叉积仅针对正交输入向量进行归一化。 (2认同)