我正在尝试为iOS平板电脑编写增强现实应用。为此,我使用 AVFoundation 类将视频从相机转换为屏幕。增强物体很简单UILabels
"在空中飞行"。即使您旋转平板电脑,它也必须看起来像是在您面前的标签并保存位置。像往常一样,我使用CMMotionManager
来捕获设备陀螺仪数据。
我的问题是 - 我无法正确地将设备旋转四元数应用于飞行UILabel
。
标签围绕它们自己的轴旋转,但它们必须围绕平板电脑轴旋转"。
如何用数学方法描述这个?现在我只知道平板电脑周围的假想球体,标签位于这个球体上,当你旋转平板电脑时,这个假想的球体围绕同一轴旋转着相反方向的标签。
我不想使用任何第三方库。
答案 0 :(得分:0)
我曾经使用过类似的应用程序。但就我而言,情景略有不同。我使用的是UIImageView
而不是UILabel
。我做的是我做了另一个UIView
并使其背景为默认/透明。在该视图中,我放置了UIImageView
,UIView
在UIView
旋转时旋转,但CameraView - (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscapeRight;
}
正在创建旋转问题。幸运的是,根据我的要求,我必须强制设备方向保持横向模式。我使用过:
- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation
{
return YES;
}
和
UIView
所以添加一个透明的UIInterfaceOrientationMask
。然后检查问题是否仍然在所有四个可能的方向中定义{{1}}并查看它是否有效。
答案 1 :(得分:0)
最后我决定使用这个库:https://github.com/antonholmquist/rend-ios。在纯UIKit上完成这项任务并不容易。