2016-09-15 64 views
1

當使用Core Motion框架時,我得到的值爲CMMotionManageraccelerometerData軸值在1和-1之間。如何將加速度計g力值轉換爲度數

如果拿着手機屏幕朝向您,然後將其左旋90度,您將在X方向獲得-1g值。向右旋轉,你會看到一個1g的值。

我想將這些值表示爲度數,我如何進行此轉換?

+0

我沒有看到這些之間的任何關係。 1g僅意味着90度,取決於軸的半徑,速度以及它旋轉的時間。我很確定你的手機有其他傳感器可以用來確定這個角度,就像指南針一樣。 – Havenard

+0

1g只是一個力量。它並沒有說任何關於這個力量是如何申請的,也不能用來給出一個方向。您可以用1克力將手機轉動1度,也可以用1克力將其完全旋轉。 –

+1

@MarcB 1g是手機靜止時的重力,它不是旋轉運動產生的力,因此它是恆定的。 – Paulw11

回答

1

我發現我不需要進行這樣的轉換,因爲您可以從實例的deviceMotion.gravity獲取角度。

的角度是:

self.motionManager = [[CMMotionManager alloc] init]; 
[self.motionManager startDeviceMotionUpdates]; 

CMDeviceMotion *deviceMotion = self.motionManager.deviceMotion; 
const CGFloat currentXDegrees = radiansToDegrees(deviceMotion.attitude.roll); 
const CGFloat currentYDegrees = radiansToDegrees(deviceMotion.attitude.pitch); 

感謝所有作出答覆。

相關問題