我想知道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或四元数格式。每种都有自己的优点和缺点。

10-08 06:13