IOS上的Augment Reality应用程序

时间:2014-09-22 09:21:13

标签: ios calayer augmented-reality quaternions cmmotionmanager

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

2 个答案:

答案 0 :(得分:0)

我曾经使用过类似的应用程序。但就我而言,情景略有不同。我使用的是UIImageView而不是UILabel。我做的是我做了另一个UIView并使其背景为默认/透明。在该视图中,我放置了UIImageViewUIViewUIView旋转时旋转,但CameraView - (NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskLandscapeRight; } 正在创建旋转问题。幸运的是,根据我的要求,我必须强制设备方向保持横向模式。我使用过:

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

UIView

所以添加一个透明的UIInterfaceOrientationMask。然后检查问题是否仍然在所有四个可能的方向中定义{{1}}并查看它是否有效。

答案 1 :(得分:0)

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