1

JavaScript で「devicemotion」イベントがトリガーされたときに、モバイル デバイスから返される情報を完全に理解するのに苦労しています。戻ってくるだろうと思っていたものは、私が見ているものと一致せず、私が見ているものでさえ矛盾しているようです.

したがって、devicemotion イベントには、電話の軸に沿った動きを登録する X、Y、および Z コンポーネントがあることを理解しています。私の仮定では、これらの数値はデバイスの一方向の動きの記録であり、動きが大きいほど大きな数値が返されると考えていました。たとえば、カメラを左に移動すると、負の X 値が得られ、右に移動すると正の値が得られます。

これが真実ではないことがすぐに明らかになりました。私は、(コンソールに記録した数値から) このイベントは軸に沿った速度の変化のみを測定すると仮定しています。左または右の移動にとらわれないので、デバイスが x 軸に沿って移動したことを知っているだけで、最後の偶数トリガー以降、返された量だけ速度が変化しました。したがって、私が見たプラスとマイナスは、実際には速度のプラスまたはマイナスの変化に関連していました.

これは正しい理解ですか?もしそうなら、これは方向情報を収集する方法がないことを意味しますか?

ありがとう。

4

1 に答える 1

3

DeviceMotionEvent(とりわけ) m/s^2 で加速度を返します。一方向に移動速度を上げると、正の値が返されます。同じ方向に一定の速度で移動している場合、加速度は 0 を返します (加速度計の感度により、これは事実上不可能であることに注意してください。常に 0 付近の値が表示され、正確に 0 になることはありません)。同じ方向に減速してもまだ動いている場合、加速から負の値が返されます。さらに複雑なことに、反対方向に移動すると、加速すると負の値が返され、減速すると正の値が返されます。これにより、デバイスを上 (= Y 軸に沿った正の加速度) または下 (= Y 軸に沿った負の加速度) と右 (= 正の加速度、

デバイスがどちらの方向に移動しているかを知りたい場合は、一定期間にわたってすべての加速度測定値をキャプチャし、それから方向を計算する必要があります。初期加速度を完全に打ち消す Y に沿った負の加速度を検出します。

于 2014-03-27T18:52:34.657 に答える