1
当使用Core Motion
框架时,我得到的值为CMMotionManager
的accelerometerData
轴值在1和-1之间。如何将加速度计g力值转换为度数
如果拿着手机屏幕朝向您,然后将其左旋90度,您将在X
方向获得-1g值。向右旋转,你会看到一个1g的值。
我想将这些值表示为度数,我如何进行此转换?
当使用Core Motion
框架时,我得到的值为CMMotionManager
的accelerometerData
轴值在1和-1之间。如何将加速度计g力值转换为度数
如果拿着手机屏幕朝向您,然后将其左旋90度,您将在X
方向获得-1g值。向右旋转,你会看到一个1g的值。
我想将这些值表示为度数,我如何进行此转换?
我发现我不需要进行这样的转换,因为您可以从实例的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);
感谢所有作出答复。
我没有看到这些之间的任何关系。 1g仅意味着90度,取决于轴的半径,速度以及它旋转的时间。我很确定你的手机有其他传感器可以用来确定这个角度,就像指南针一样。 – Havenard
1g只是一个力量。它并没有说任何关于这个力量是如何申请的,也不能用来给出一个方向。您可以用1克力将手机转动1度,也可以用1克力将其完全旋转。 –
@MarcB 1g是手机静止时的重力,它不是旋转运动产生的力,因此它是恒定的。 – Paulw11