IOS上的增强现实应用程序



我正在尝试为iOS平板电脑编写一个增强现实应用程序。为此,我使用AVFoundation类将视频从相机转换到屏幕。增强物体是简单的UILabels"在空中飞行"。即使你旋转平板电脑,标签也必须看起来像在你面前,并保存位置。和往常一样,我使用CMMotionManager来捕获设备陀螺仪数据。我的问题是-我不能正确地将设备旋转四元数应用于飞行的UILabel s。标签围绕它们自己的轴旋转,但它们必须"围绕平板电脑轴"旋转。如何从数学上描述这一点?目前,我只知道平板电脑周围的一个假想球体,标签位于这个球体上,当你旋转平板电脑时,这个假想球体会绕着同一轴以相反的方向旋转标签。我不想使用任何第三方libs。

我也开发过类似的应用程序。但就我而言,情况有点不同。我用的是UIImageView而不是UILabel。我所做的是制作了另一个UIView,并将其背景设置为默认/透明。在那个视图上,我放置了我的UIImageView,它在UIView旋转时旋转,但CameraView UIView在旋转时产生了问题。幸运的是,根据我的要求,我必须强制设备方向保持在横向模式。我使用的:

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskLandscapeRight;
}

- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation
{
    return YES;
}

所以添加一个透明的UIView。然后检查问题是否仍然存在——在所有四个可能的方向上定义你的UIInterfaceOrientationMask,看看它是否有效。

最后我决定使用这个库:https://github.com/antonholmquist/rend-ios.在纯UIKit上执行此任务并不容易。

最新更新