繁体   English   中英

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

[英]How to normalize acceleration with orientation?

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

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

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

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

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

让您开始

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

   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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM