【发布时间】:2014-01-21 00:13:00
【问题描述】:
我正在开发一款应用,该应用要求用户将 iPhone 对准太阳以触发特殊事件。
我可以基于陀螺仪和 CoreMotion 框架检索设备 3D 方向四元数,从中我可以得到偏航角、滚动角和俯仰角。 我还可以根据当前日期和时间 (GMT) 以及纬度和经度计算太阳的方位角和天顶角。 我接下来要弄清楚的是如何比较这两组值(手机方向和太阳位置)以准确检测设备与太阳的对齐情况。
关于如何实现这一目标的任何想法?
【问题讨论】:
-
愿意分享您目前拥有的东西吗?这是一个增强现实应用程序,太阳的轨道路径会绘制在屏幕上,因此为什么需要检测对齐方式?
-
我不打算绘制实际的太阳轨道,我只想在 UIView 上显示一个圆圈,当用户移动他的设备时它会四处移动。当手机对准太阳时,绘制的圆圈会更靠近屏幕中心。这在视觉上类似于 iOS7 上的气泡级别应用程序。
-
对于 maths.stackexchange.com 上的人们来说,这似乎是一个关于 mathsplay 的好问题:P 请发布一个转发链接,以便我可以检查提交的答案,因为我有兴趣看看它会如何为你锻炼:)
-
我终于设法让它工作了!我遇到了 Apple 代码示例“pARk”,它是一个简单的增强现实应用程序。我基本上采用了他们对相机和投影矩阵的实现,我所要做的就是以一定的顺序将这些矩阵与太阳的 3D 位置向量(从球坐标转换为笛卡尔坐标)相乘,然后我可以检索屏幕坐标。我的实现似乎运行良好,稍后我将发布更详细的答案。
-
你做得很好。如果您还可以发布一个 github/链接到该项目,该项目仅按照您对太阳坐标的描述进行,我将不胜感激。我很想测试您的解决方案,并且当我将设备面对太阳时,能够看到您的斑点在太阳上方盘旋,并且当我在夜间向下瞄准地球时仍然显示斑点!感谢您回来,我非常期待您实施 Broco
标签: ios augmented-reality quaternions core-motion azimuth