首页 文章

增强现实的设备滚动补偿

提问于
浏览
4

我正在开发一个通过 iPhone 的摄像头流执行地理定位的应用程序。我使用指南针找出将图标和信息放在相机图层上的位置。如果我围绕偏航轴旋转设备,则一切正常。

但是,当我滚动 iPhone 时,屏幕上的所有信息都消失了。那是因为当您滚动设备时,指南针的方向也会改变。但是,有些应用程序(例如 Layar 或 Wikitude)允许滚动旋转,而不会失去对相机图层上视觉项目的关注。这样,这些应用程序可以在纵向和横向之间平滑过渡。

他们如何实现的?如何补偿设备的旋转角度以将信息保持在屏幕上?

顺便说一句,ARKit 框架和我有同样的问题。

谢谢。

1 回答

  • 1

    如果您处于 2D 模式,则也许足以从摄像机视场和偏移航向中获取要计算的点,计算到屏幕中心的距离,然后将该距离用作圆的半径即可得出 x = r * cos,y = r * sin,角度为-roll,因此对象绕着圆周绕圆周运动。然后,您只需要使用变换(CGAffineTransformMakeRotation)对图像本身进行反向旋转即可保持其垂直。

相关问题