0

私は Web アプリケーションを開発し、devicemotionイベントを使用して加速度を取得して速度と距離を測定したいと考えていますが、デバイスが平面上で静的であり、y の加速度値が常に変化していることに気付きました。

    var clock = null, prevClock = new Date().getTime();
window.addEventListener("devicemotion", function(e) {
if (e.acceleration.x) {
    clock = new Date().getTime();
    var d = (clock - prevClock) / 1000;
    d *= d;
    motion.x = (e.acceleration.x);
    motion.y = (e.acceleration.y);
    motion.z = (e.acceleration.z);

    distance.x += (motion.x) * d;
    distance.y += (motion.y) * d;
    distance.z += (motion.z) * d;
    prevMotion = motion;
    prevClock = new Date().getTime();
}
}, true);

正確な加速度を測定するにはどうすればよいですか。

4

1 に答える 1

0

あなたはすでに正しい方法でそれを行っています。また、これより正確な加速は得られません。これは、センサーの感度が非常に高い (または十分に正確でない) ため、デバイスが平らな面に置かれている場合でも、加速度が 0 になることは決してないためです。新しい携帯電話には、より正確なセンサーがあります。たとえば、iPhone 6+ は、Galaxy S4 の代わりに 0 にかなり近づきますが、iPhone6+ を使用しても、平らな面で加速度が 0 になることはありません。

于 2016-03-24T09:49:11.373 に答える