增强现实设备滚动补偿

时间:2011-11-15 02:07:09

标签: iphone ios augmented-reality device-orientation

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

但是,当我滚动iPhone时,屏幕上的所有信息都会消失。那是因为当您滚动设备时,罗盘方向也会发生变化。但是,像Layar或Wikitude这样的应用程序允许滚动旋转,而不会失去对摄像机图层上的可视项目的关注。这样,这些应用程序可以实现纵向和横向之间的平滑过渡。

他们是如何实现这一目标的?如何补偿设备的滚动旋转以保持屏幕上的信息?

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

感谢。

1 个答案:

答案 0 :(得分:1)

如果您在2D中,也可以从摄像机视野和偏移航向中获取您正在计算的点,计算到屏幕中心的距离,并将该距离用作圆的半径来做x + = r * cos,y + = r * sin,其中-roll为角度,因此物体相对于滚动以圆圈移动。然后你只需要通过变换(CGAffineTransformMakeRotation)来反转旋转图像本身以使其保持垂直。