1

Apple 開発者ドキュメントでは、この画像で処理される動きについて説明しています。

開発者向けドキュメント

私は今かなり混乱しています...いくつかのテストを行うと、加速度計は軸上の平行移動ではなく、回転の小さなセットを処理することがわかります...たとえば、デバイスをX斧上で動かしても何も起こりません..私はそれを回転させ、Z私は加速を得るX

テストに使用するコードは次のとおりです。

-(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration{ 

    [self.sliderX setProgress:fabsf(acceleration.x)];
    [self.sliderY setProgress:fabsf(acceleration.y)];
    [self.sliderZ setProgress:fabsf(acceleration.z)];
}

編集------私が理解できない動作は、前に言ったように、単一の軸で回転するように配線されています... Z軸で30°回転すると、連続的な加速が得られます... Xで移動している間斧 私は短くて速い動きに対してのみ加速を得る.

4

1 に答える 1

2

加速度センサーは、重力による加速度の影響を最も強く受けます。実際には、自由落下と実際に行っていることとの差を返しています。

したがって、iPhone をテーブルの上に平らに置くと、z 方向に加速度が発生するはずです。長辺の 1 つでバランスをとった場合、x に沿って加速度が発生するはずです。iPhone が地面に落ちていた場合、加速度ベクトルは (0, 0, 0) になるはずです。

iPhoneをスライドするように動かすと効果が出ますが、重力に比べて小さいので見逃しやすいです。

そのため、z 軸で回転すると、デバイスに対する重力の方向が変化したため、永続的な変化が生じます。デバイスを短時間加速してから加速を停止するため、x を移動すると一時的な変化が生じます。

于 2012-01-05T13:40:04.773 に答える