好的,我不认为这个问题已经被问及它的时间要么我得到更快的回答,要么我会在得到答案之后添加答案,因为我必须接近。
让我解释一下:
考虑到iOS设备俯仰和滚动(忘记偏航)我们的角度就是这个
* r+
* ------------
* | |
* p- ° |p+
* | |
* ------------
* r-
所以基于身体参考框架。
我们知道,当音高或滚动为0时,另一个是设备的最大倾角。但是当设备在滚动和俯仰方面都倾斜时,我们需要去Quaternion,以下答案将使屏幕正常。 https://stackoverflow.com/a/10836923/2332101
具有垂直参考向量的法向量将给出最大倾角。
因此,为了获得在CLHeading中提供的标题方向投影在水平面上的法线向量,(称为x轴,因为它是iOS主体框架坐标)和CLHeading的x之间的角度应该给我们正确的磁航向(忘记真正的航向)。
就是在这个例子中:
*
* ------------
* | |
* ° |-> (magnetic heading)
* | |
* -----|------
* v (max inclination example where p = 0)
所以在上面的例子中,我们知道它是CLHeading.magneticHeading + 90°,但我不想像往常那样沿着这条路走下去。我希望使用所提供的所有聪明的API以数学方式进行。
IT很简单,但我已经尝试了大量的选择而没有成功。
请帮我找出错误的方法!
答案 0 :(得分:1)
所以这就是答案:
从问题中提到的正常情况来看:
完成!
问题是:为什么这两种方法会给出不同的读数?这是从核心位置框架的CLHeading和Core Motion的CMAttitude得到的结果略有不同,或者我正在做一些草率的事情?
由于