将重力加速度转换为纯加速度?

时间:2013-04-30 15:53:10

标签: javascript html5 acceleration

在Android上使用event.accelerationIncludingGravity时,它会返回值

x: -0.2
y: +0.1
z: +9.1

在平坦的表面上休息时。但是,我希望在没有重力的情况下获得加速,但不支持event.acceleration。有没有办法通过数学转换它?在HTML5Rocks中有一个删除重力因子的示例,但它似乎不起作用。

  // Convert the value from acceleration to degrees acceleration.x|y is the 
  // acceleration according to gravity, we'll assume we're on Earth and divide 
  // by 9.81 (earth gravity) to get a percentage value, and then multiply that 
  // by 90 to convert to degrees.                                
  var tiltLR = Math.round(((acceleration.x) / 9.81) * -90);
  var tiltFB = Math.round(((acceleration.y + 9.81) / 9.81) * 90 * facingUp);

Example script graphing acceleration values(不是来自HTML5Rocks)

1 个答案:

答案 0 :(得分:0)

我明白了。您获得的x和y轴的数字基本上为0,继续将设备的测量值放在平坦表面上并分别平均所有x和y值,您将得到每个方向的误差程度。加速度以m / s ^ 2为单位测量。 (米每秒平方)。地球表面的重力加速度为9.86m / s ^ 2。在一个理想的物理问题中,你所要做的就是减去这个数字,你会得到你的答案。如果你试图计算速度,那么这将是一个更复杂的问题,但地球的重力加速度不会加速。在z轴上确实存在较大程度的误差,但如果将误差程度计算为实际值的百分比则不会。或者你在海拔300公里左右。