2016-09-15 62 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); 

感谢所有作出答复。

相关问题