旋转背后的数学是什么?Unity3d
我试图更好地理解四元数,但我不知道旋转背后的数学是如何工作的。我尝试查找此项,但找不到任何结果。您可能知道旋转可以用以下形式的四元数表示:旋转背后的数学是什么?Unity3d,unity3d,math,quaternions,Unity3d,Math,Quaternions,我试图更好地理解四元数,但我不知道旋转背后的数学是如何工作的。我尝试查找此项,但找不到任何结果。您可能知道旋转可以用以下形式的四元数表示: cos (phi / 2) sin (phi / 2) * axis.x sin (phi / 2) * axis.y sin (phi / 2) * axis.z 轴是旋转轴,φ是旋转角度。这是定义四元数所需的两个度量 有多个旋转将一个向量从映射到另一个向量到。最短的旋转是轴垂直于两个矢量的旋转。因此,轴是: axis = normalize(from
cos (phi / 2)
sin (phi / 2) * axis.x
sin (phi / 2) * axis.y
sin (phi / 2) * axis.z
轴
是旋转轴,φ
是旋转角度。这是定义四元数所需的两个度量
有多个旋转将一个向量从
映射到另一个向量到
。最短的旋转是轴垂直于两个矢量的旋转。因此,轴是:
axis = normalize(from x to)
x
表示叉积
角度是两个向量之间的角度:
phi = acos(dot(from, to) / (norm(from) * norm(to))
norm
是向量范数或向量长度
有了这些值,你就可以计算四元数。据我所知,这个解决方案对相反的向量不起作用。