代码之家  ›  专栏  ›  技术社区  ›  geekyaleks

iPhone倾斜角度-使用陀螺仪?

  •  0
  • geekyaleks  · 技术社区  · 12 年前

    我想知道iPhone直立时倾斜了多少度——也就是说,如果我把iPhone指向上,我想知道它向上看了多少度?我认为我可以使用陀螺仪和核心运动,我认为这是 然而,我想要 是以弧度每秒为单位的“速率”。我对用户移动iPhone的速度并不感兴趣,我只对倾斜角度感兴趣。所以,如果我把手机指向上方拍照,我想知道指向上方的角度——有什么想法吗??

    非常感谢。

    1 回复  |  直到 12 年前
        1
  •  8
  •   Rohit Pathak    9 年前

    陀螺仪数据以弧度每秒为单位,但您要查找的是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或四元数格式。每个人都有自己的优点和缺点。