我想知道iPhone直立时可以倾斜多少度-也就是说,如果我将iPhone指向上方,我想知道它仰望了多少度?我认为我可以为此使用陀螺仪和核心运动,并且我认为这是我想要的螺距,但是,螺距是每秒弧度的“速度”。我对用户移动iPhone的速度并不真正感兴趣,而只是对倾斜角度感兴趣。因此,如果我将手机指向上方拍照,我想知道指向上方的角度-有什么想法吗?
谢谢。
最佳答案
陀螺仪数据以弧度每秒为单位,但是您要查找的是CMMotionManager.attitude属性。它以弧度表示对象相对于某个参考系的姿态。
创建类变量motionManager并初始化:
motionManager = [[CMMotionManager alloc] init];
motionManager.deviceMotionUpdateInterval = 0.1f;
[motionManager startDeviceMotionUpdatesToQueue:[NSOperationQueue currentQueue] withHandler:^(CMDeviceMotion *motion, NSError *error) {
[self processMotion:motion];
}];
处理更新,您正在寻找音调,但是在此示例中,它将显示所有三个值,以便您可以尝试并确定所需的内容:
-(void)processMotion:(CMDeviceMotion*)motion {
NSLog(@"Roll: %.2f Pitch: %.2f Yaw: %.2f", motion.attitude.roll, motion.attitude.pitch, motion.attitude.yaw);
}
这些是欧拉角,您也可以选择获取rotationMatrix或四元数格式。每种都有自己的优点和缺点。