在xcode中从UIAccelerometer计算G值

时间:2012-09-07 09:10:09

标签: objective-c ios xcode uiaccelerometer

我已编写此代码以从xcode中获取UIAccelerometer的G值。你能告诉我它是否正确?

-(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration
{
    float gValue = sqrt(acceleration.x*acceleration.x+acceleration.y*acceleration.y+acceleration.z*acceleration.z);
    [gLabel setText:[NSString stringWithFormat:@"%.2f",gValue]];
}

请帮助我

1 个答案:

答案 0 :(得分:2)

如果G value应该是Gravitational acceleration,则此代码不正确。

问题:

  1. 它可以工作,但只有当设备没有移动时,唯一的加速度是由地球的引力产生的。在所有其他情况下,等式是不正确的。

  2. UIAcceleration值由G缩放。这意味着当设备处于空闲状态时,值将为(0, -1.0, 0),结果为1.0

  3. 另请注意,UIAccelerometer已被弃用并被“Core Motion”框架取代。

    编辑:使用[CMDeviceMotion gravity]