我正在编写一个 iPhone/iPad 应用程序。我需要计算车辆行驶方向上的加速度和减速度,该车辆在接近水平直线的情况下以不稳定的加速度和减速度行驶。我有来自 X、Y、Z 正交加速度计的 3 个读数的序列。但 iphone/ipad 的方向是任意的,加速度计读数包括车辆运动和重力的影响。结果应该是一系列单个加速度值,它们是正值还是负值取决于车辆是在减速还是在加速。只要加速度与减速度的符号相反,正负方向是任意的。重力应该被排除在结果之外。对结果进行一定程度的变量平滑处理会很有用。
解决方案应尽可能简单,并且计算效率必须高。答案应该是某种伪代码算法、C 代码或一系列可以轻松转换为 C 代码的方程式。 Objective C 中的 iPhone 特定解决方案也可以。
谢谢
最佳答案
为此你需要一些三角函数,例如获得你需要的大小
magn = sqrt(x*x+y*y+z*z);
要获得角度你需要atan,那么c函数atan2更好
xyangel = atan2(y,x);
xymagn = sqrt(x*x+y*y);
vertangle = atan2(z,xymagn)
没有你如何获得负数和正数的幅度是任意的,例如你可以将 π/2 < xyangle < 3π/2 解释为负数。那就是用 x 的符号代替 magn 的符号,但是从 y 中取符号同样有效
关于iphone - 如何从 iphone 的 X、Y、Z 加速度计读数计算行进方向的加速度/减速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12539141/