0

我有 2 个角度,phi(左右旋转)和psi(上下旋转)。我想将它们转换为单个角度,这相当于四元数(=围绕单位向量的最小旋转)。

从这篇文章:https ://stackoverflow.com/a/47277997/113718 我们得到球面->四元数转换会给出: quat = (cos(phi/2)cos(psi/2), -sin(phi/2)sin(psi/2), cos(phi/2)sin(psi/2), sin(phi/2)cos(psi/2))

现在,从另一篇文章:https ://stackoverflow.com/a/3825595/113718 四元数的角度是

角度 = 2 * cos -1 (w) = 2 * cos -1 ( sin(phi/2)cos(psi/2) )

然而这似乎不对。我希望当

phi = 0 => angle = psi, 反之亦然psi = 0 => angle = phi

但上面的公式似乎并非如此。我理解错了什么?

4

1 回答 1

1

第一个链接看起来像是“标量优先”约定(即 w 是第一个元素)。因此,您应该查看角度的 cos(phi/2)*cos(psi/2) 项。然后,当 phi=0 和 psi=0 时,一切都会按预期进行。

角度 = 2 * cos^-1(w) = 2 * cos^-1( cos(phi/2)cos(psi/2) )

于 2020-09-15T16:19:13.970 回答