javascript - 如何用方向归一化加速度?

标签 javascript math orientation physics acceleration

  • 相对于手机以 m/s^2 为单位跟踪加速度 (X,Y,Z)。
  • 以相对于“地球”的欧拉 Angular 跟踪方向。

我可以使用方向来计算相对于“地球”的加速度吗?

如果是,你能解释一下怎么做吗?

我创建了一个 plunkr:http://plnkr.co/edit/JOeqcFqagiI5z4YKNU65?p=preview (您可以在手机上运行它:http://run.plnkr.co/MOVkJip5LSMklY4O/)

首选答案是使用 Javascript,但我可以移植。

最佳答案

让你开始,

欧拉 Angular 定义了一个向下朝向地球中心的方向(方向),例如:

   x = cos(alpha)cos(beta);
   y = cos(alpha)sin(beta);
   z = sin(alpha);
   Vector3 versor = new Vector3(x, y, z);

(可能你需要修正这个±alpha±Math.PI/2,这取决于欧拉的表达方式,0°在哪里等等) 使用这个向量,重力将产生一个力:

Vector3 force = 9.81 * versor;

因此,如果您有加速度计读数(即力),您可以计算:

double grav = Math.sqrt(Math.pow(acc.x/versor.x, 2) + Math.pow(acc.y/versor.y) + Math.pow(acc.z/versor.z));

或者不是由重力引起的设备上的力:

   Vector3 not_gravitational_force = acc - (9.81 * versor);

关于javascript - 如何用方向归一化加速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20249640/

相关文章:

javascript - 函数获取属性的分层映射并将其转换为 JavaScript 中的单个属性

javascript - 为什么这不起作用? jQuery

c - Matlab/C/Java 或任何其他数字系统程序中的正弦函数

ios - 使用NSNotificationCenter和UIDeviceOrientation更改方向

ios - 更改方向时 UIScrollView 的问题,iOS

javascript - 使用 Ajax 传递参数(使用延迟和 promise )需要帮助

javascript - PHP 页面中的 JQuery

python - 是什么让这段代码如此缓慢? (对于项目 Euler q45)

java - Math.pow 奇怪的结果

iOS+SpriteKit : How to force portrait mode?