0

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

4

2 回答 2

0

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

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskLandscapeRight;
}

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

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

于 2014-12-28T07:04:13.243 回答
0

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

于 2015-01-30T19:59:35.987 回答