2012-07-23 146 views
0

我想知道有多少度是iPhone時正在舉行扶着直立 - 也就是說,如果我點了iPhone,我想知道這是多少度的仰視?我想,我可以使用陀螺儀和核心運動對於這一點,我認爲這是間距,我想,但是,間距是每秒弧度「速率」。我對用戶移動iPhone的速度並不感興趣,我只是對傾斜角度感興趣。所以如果我指着手機拍照,我想知道指向的角度 - 任何想法?iPhone傾斜角度 - 使用陀螺儀?

謝謝。

回答

8

陀螺儀的數據是每秒弧度,但你正在尋找的是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或quaternion格式。各有各的優點和缺點。

+0

優秀,非常感謝你..! – geekyaleks 2012-07-23 15:33:50

+0

很高興幫助。 :)爲了擴大一點就@KarolyS評論,這裏http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work看看 – 2012-07-24 02:33:04