iphone - 如何从 iphone 的 X、Y、Z 加速度计读数计算行进方向的加速度/减速度

标签 iphone ios xcode algorithm accelerometer

我正在编写一个 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/

相关文章:

iphone - 处理精简版应用程序

ios - QT IOS 链接器错误入口点(_main)未定义

ios - 如何在没有 Xcode 的设备上的命令行上使用 lldb 调试 iOS 应用程序

iphone - 我如何调用这个注册设备的方法

iphone - 如何识别核心数据管理对象模型——哈希?

ios - UI本地通知

ios - 在 Swift 3 中播放数组中的随机声音

ios - 如何使用核心数据在 ios 中使用现有的 sqlite 数据库?

iphone - 简单 iPhone 应用程序启动时的 EXC_BAD_ACCESS

iphone - Xcode 不会构建到设备