我试图弄清楚getRotationMatrix()getOrientation()是如何工作的。

到目前为止,我知道在getRotationMatrix()函数中,它会将重力矢量与磁矢量互积,以获得指向东方的新矢量。然后,它再次将East向量与引力向量交叉积,以获得指向磁北的向量。按照这个article的说法,现在我们有了三个正交向量,我们可以形成一个旋转矩阵。

这是我的的第一个问题:为什么我们应该再次将East向量与引力向量交叉积,以获得指向磁北的向量?原始的磁矢量不是指向磁北吗?新矢量和原始磁矢量有什么区别?

谈到getOrientation(),这是我的第二个问题:方位角,侧倾角和俯仰角如何显示?是否有任何方程式或公式可解释?

您可以转到此website来查看代码

非常感谢您的关注。非常感谢!

最佳答案

第一个答案:磁性矢量指向(磁性)北,也可能略微向上或向下。第二个叉积的目的是在水平面中获得指向(磁)北的矢量。

第二个答案:根据该代码,从旋转矩阵的元素中计算出俯仰角和方位角,而这些元素又是从三个空间矢量的分量中得出的。乍看上去,

tan(方位角)= My/Hy
sin(音调)= -Ay
tan(卷)= -Az/Ax

(是否足够的答案取决于您对三角函数的熟悉程度以及在3空间中可视化旋转的程度。)

10-08 12:00