无论设备方向如何,都会加速

时间:2017-08-30 05:00:46

标签: javascript device-orientation

此javascript代码测量x轴上的水平加速度。目的是测量设备是否在与地面“水平”表面平行的直线上移动时的加速度,无论设备方向如何。
可以通过陀螺仪数据在给定的加速时间内完成。 5秒?怎么样? THX

let xAxis = '';

function handleMotionEvent(event) {
  let x = event.accelerationIncludingGravity.x;
  if (!xAxis) {
    xAxis = x;
  } else {
    if (Math.abs(x - xAxis) > 0.4) {
      console.log(x);
    }
  }
}

if (window.DeviceMotionEvent) {
  window.addEventListener("devicemotion", handleMotionEvent, true);
}

1 个答案:

答案 0 :(得分:0)

基于this documentation,accelerationIncludingGravity属性是一个对象,提供有关三轴加速度的信息。每个轴都有自己的属性:

  • x:x轴加速度(西向东)
  • y:y轴加速度(南向北)
  • z:z轴加速度(从下到上)

因此,从数学来看,要获得总水平加速度,我们可以使用r ^ 2 = x ^ 2 + y ^ 2公式组合x和y分量。

...
a = Math.sqrt(x*x + y*y); //horizontal acceleration
...