首页 > 解决方案 > FromToRotation 背后的数学原理是什么?Unity3d

问题描述

我试图更好地理解四元数,但我不知道 FromToRotation 背后的数学是如何工作的。我尝试查找此内容,但找不到任何结果。

标签: unity3dmathquaternions

解决方案


您可能知道旋转可以用以下形式的四元数表示:

cos (phi / 2)
sin (phi / 2) * axis.x
sin (phi / 2) * axis.y
sin (phi / 2) * axis.z

axis是旋转轴,phi是旋转角度。这是定义四元数所需的两个度量。

有多个旋转将一个向量映射from到另一个向量to。最短的旋转是轴垂直于两个向量的旋转。因此,轴是:

axis = normalize(from x to)

x表示叉积。

角度是两个向量之间的角度:

phi = acos(dot(from, to) / (norm(from) * norm(to))

norm是向量范数或向量长度。

使用这些值,您可以计算四元数。


推荐阅读