1

このコードは、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]];
}

親切に助けてください

4

1 に答える 1

2

G valueであるはずの場合Gravitational acceleration、このコードは正しくありません。

問題:

  1. それは機能する可能性がありますが、デバイスが動いておらず、地球の重力によって唯一の加速度が発生する場合に限ります。他のすべての場合、方程式は正しくありません。

  2. UIAccelerationの値はGでスケーリングされます。つまり、デバイスがアイドル状態の場合、値はたとえば(0, -1.0, 0)になり、結果はになります1.0

また、これUIAccelerometerは非推奨になり、「CoreMotion」フレームワークに置き換えられたことにも注意してください。

編集:を使用し[CMDeviceMotion gravity]ます。

于 2012-09-07T09:49:02.713 に答える