3

我知道如何获取磁航向的坐标:heading.x、heading.y、heading.z 问题是我需要 trueHeading 的 (x, y, z)-vector。我怎样才能创建这个向量?

谢谢!

4

2 回答 2

5

编辑:我已经改变了很多我的答案......

基本上,您需要以与 磁偏角相反的方向旋转磁北矢量。

困难的部分是您需要在水平面上旋转矢量。为此,您需要知道手机的方向。

这是您需要做的:

  1. 获取磁北矢量。

  2. 从加速度计获取重力矢量。

  3. 现在计算/查找磁偏角(这取决于您在世界的哪个位置,它也随时间缓慢变化)。

  4. 围绕重力矢量旋转磁北矢量 X 度(其中 -X = 磁偏角)。这将是棘手的部分,您将需要复习一些 3d trig。

于 2011-03-15T09:34:57.633 回答
0

感谢您的编辑...有趣,这正是我当时所做的。我取了磁北向量,并用一个围绕重力向量的旋转矩阵旋转它,并在磁航向和真航向之间变化。

问题是在这种情况下我依赖于磁矢量。在某些情况下,我注意到磁矢量变得非常疯狂,传感器提供了奇怪的值。

所以我想要的是获得独立于磁矢量的真航向矢量。好吧,多么愚蠢的想法——真正的航向很可能已经取决于磁航向。

但是 - 谢谢你的回答:)

于 2011-03-17T08:48:37.573 回答