ios – 将设备3D方向与太阳位置进行比较

ios – 将设备3D方向与太阳位置进行比较,第1张

概述我正在开发一款应用程序,要求用户将iPhone瞄准太阳以触发特殊事件. 我可以根据陀螺仪和CoreMotion框架检索设备3D方向四元数,从中我可以获得偏航,滚动和俯仰角度. 我还可以根据当前日期和时间(GMT)以及纬度和经度计算太阳的方位角和天顶角. 我接下来要弄清楚的是如何比较这两组值(手机方向和太阳位置)以准确地检测设备与太阳的对齐. 关于如何实现这一点的任何想法? 我终于设法解决了这个问题 我正在开发一款应用程序,要求用户将iPhone瞄准太阳以触发特殊事件.

我可以根据陀螺仪和CoreMotion框架检索设备3D方向四元数,从中我可以获得偏航,滚动和俯仰角度.
我还可以根据当前日期和时间(GMT)以及纬度和经度计算太阳的方位角和天顶角.
我接下来要弄清楚的是如何比较这两组值(手机方向和太阳位置)以准确地检测设备与太阳的对齐.

关于如何实现这一点的任何想法?

解决方法 我终于设法解决了这个问题,

为了达到这个目的,我使用了Apple开发人员资源中使用的增强现实示例代码:
pARk

这个想法首先是将太阳的球面坐标转换为笛卡尔坐标,以便将它在天空中的位置作为一个简单的向量:{x,y,z}.
该公式可在维基百科上找到:Spherical coordinates.由于与太阳的距离(球面坐标的半径)在这里并不重要,我使用了1.

使用设备陀螺仪和CoreMotion框架,我就可以获得iPhone旋转矩阵.
从’pARk’代码示例并使用几何函数,我可以计算相机投影矩阵.我将旋转矩阵与它相乘,然后将得到的矩阵与太阳的矢量坐标相乘.

这给出了一个带有太阳屏幕坐标的简单矢量.通过显示具有这些x和y值的UIVIEw,我可以在移动屏幕时看到太阳移动.

我的Github上提供了此功能的代码,随时可以使用和分享!

总结

以上是内存溢出为你收集整理的ios – 将设备3D方向与太阳位置进行比较全部内容,希望文章能够帮你解决ios – 将设备3D方向与太阳位置进行比较所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1065814.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存