我想知道直立时iPhone倾斜有多少度--也就是说,如果我把iPhone向上指,我想知道它向上看了多少度?我想我可以用陀螺仪和核心运动来做这个,我认为我想要的是螺距,然而,螺距是以弧度每秒表示的“速度”。我对用户移动iPhone的速度并不感兴趣,我只是对倾斜角度感兴趣。所以,如果我是指着电话拍照,我想知道的角度,向上-有什么想法吗?
谢谢。
发布于 2012-07-23 14:49:59
陀螺仪数据每秒以弧度表示,但您要查找的是CMMotionManager.attitude属性。它以弧度表示物体相对于某个参照系的姿态。
创建类变量motionManager和init:
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或四元数格式。每一个都有各自的优缺点。
https://stackoverflow.com/questions/11613811
复制相似问题