【问题标题】:Convert 2 angles (spherical rotation) to single angle (quaternion)将 2 个角度(球面旋转)转换为单个角度(四元数)
【发布时间】:2021-01-02 01:15:24
【问题描述】:

我有两个角度,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

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

【问题讨论】:

    标签: 3d latitude-longitude quaternions spherical-coordinate


    【解决方案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) )

    【讨论】:

      猜你喜欢
      • 2018-04-05
      • 2011-04-19
      • 2020-08-23
      • 2020-02-26
      • 1970-01-01
      • 1970-01-01
      • 2021-11-29
      • 1970-01-01
      相关资源
      最近更新 更多