6

我遇到了一个问题。我想将 iPhone 的 CMAttitude 信息转换为高度(0 到 90 度)和方位角(0 到 360 度)。我在谷歌上搜索并点击了一些讨论它的线程,但没有一个线程得到肯定的答案,而且大多数讨论四元数和欧拉角的文章都是太多的数学知识,无法塞进我的大脑!

是否有一些开源材料可以轻松完成这项任务?或者有人编写了代码来执行这种转换?

编辑:首先,抱歉这么抽象!

方位角是设备指向的地球表面上的方向。比如北 = 0 度,东北 = 45 度,东 = 90 度,南 = 180 度等等。范围在 0 度到 360 度之间:

在此处输入图像描述

高度是从地球平面到天空中物体的角度: 在此处输入图像描述

谢谢,

拉吉

4

1 回答 1

4

使用 CMDeviceMotion,您可以获得具有“滚动、俯仰和偏航”的 CMAttitude 对象 - 例如,假设手机处于纵向模式,“偏航”是“方位角”,“俯仰”是手机相对于地面的倾斜度,或天顶,而“滚动”是关于指向屏幕的矢量,而不是您感兴趣的内容。

事情变得有点棘手,因为“方位角”是 3D 磁矢量(指向磁北极)在平坦“地”平面上的投影,它根据设备方向而变化,但鉴于对术语的理解,线程像这样应该更容易理解。如果你只需要你的应用程序在一个方向上工作,事情就会变得简单得多。

PS“高度”几乎专门用于指代给定参考(海平面、大地高度等)的海拔或高度。“Zenith”或“pitch”是更可取的,因为你在 iOS 上,你应该坚持他们的坐标方案:(lat, lon, alt), (pitch, yaw, roll)。

于 2011-05-03T16:13:11.017 回答