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