如何使用CoreMotion获取空间中的设备方向

坦u(TanguyAladenise)

我在这里有一个思考和搜索的问题,无法找到看好的方向...我正在寻找一种通过使用设备运动来在360图像(球形)中移动的算法。

因此,如果用户将设备指向他前面,他将获得确定的图像原点。当他在周围移动设备时,全景图像随之移动。

有什么想法或资料可以调查吗?

谢谢大家,祝大家Swift运气好:)

y

我看到了两种简单的方法来实现此目的,而又没有太多的数学麻烦:

  1. 使用欧拉角,即CMAttitude侧倾属性在图像的宽度和测得的角度之间定义映射,并注意180°/ -180°的奇异性。这种方法的缺点:
    • 当用户开始以混乱的方式移动其设备时,可能会损坏云台锁
    • 关于完整3D视图的可扩展性也是如此。
  2. 使用来自CMDeviceMotion磁场,磁场可抵抗万向节锁定。磁力计比加速度计/陀螺仪慢一点,但我认为CoreMotion的融合算法将提供合理的估算,因此这不是重点。这里的缺点:
    • 磁场并非总是可用,或者倾向于不精确。
    • 将其扩展到3D视图可能会很麻烦。

两种方法都应该很容易实现,因此我将从其中一种开始。如果您想拥有一个更复杂的解决方案,则需要更深入地研究数学。在这种情况下,可行的解决方案是使用当前设备的法线(例如,找到iOS设备的法线矢量),将其投影到地面表面上,并获取圆柱全景图的角度增量。

在这种情况下,球形投影更容易,因为您可以直接使用标称矢量。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用其他名称空间中的对象以及如何在PHP中导入名称空间

如何使用JavaScript检测设备方向?

如何模拟在单独的命名空间中使用的类?

如何在新旧名称空间中使用Avro数据

向量在3D空间中的旋转和方向-逆序

如何在名称空间中使用函数?

当前子空间中如何使用use子句中的符号

内存调试:如何在Linux中的用户空间/内核空间中获取锁定的页面信息

如何在当前运行空间中获取和设置变量?(基于cmdlet的模块)

如何在XML名称空间中使用Scrapy XPath?

在命名空间中使用全局命名空间中的函数

如何在Python的子包/模块的命名空间中获取父模块/包函数?

如何使用XSLT替换命名空间中的元素?

如何使用约束布局在空间中心对齐

如何使用“使用命名空间”在命名空间中定义变量?

React Native如何获取设备方向

如何使用Eclipse CDT自动从名称空间中取出类?

如何使用GNU Parted在可用空间中创建分区

Android获取设备方向

如何将“匿名”网络名称空间中的veth设备连接到外部设备?

如何在WP8.1应用程序中使用Reflection获取命名空间中的所有类?

如何删除DataGrid中多余的未使用空间中的行

Android使用Sensons获取设备方向

如何更改设备方向

在名称空间中获取某些类型

如何使用XPath根据条件获取XML containsg默认名称空间中的特定元素

如何获取 ClojureScript 命名空间中的公共函数列表?

如果滚动为零,如何用四元数表示空间中刚体的方向

如何使用命名空间中定义的运算符?