4

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

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

他们如何做到这一点?如何补偿设备的滚动旋转以将信息保留在屏幕上?

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

谢谢。

4

1 回答 1

1

如果您在 2D 中,则从相机视野和偏移航向中获取您正在计算的点就足够了,计算到屏幕中心的距离,并将该距离用作圆的半径来执行 x += r *cos, y += r*sin 以 -roll 为角度,所以物体逆着滚动做圆周运动。然后,您只需使用变换 (CGAffineTransformMakeRotation) 对图像本身进行反旋转以使其保持垂直。

于 2011-11-15T09:24:51.960 回答