我正在尝试像应用程序“Dynolicious”一样复制加速度计算,但是我不确定该去哪里计算。我使用Core Motion还是使用其他数字进行计算?

我尝试使用Core MotionuserAcceleraion值,但它根本不符合我的要求。

coreMotion = [[CMMotionManager alloc]init];
[coreMotion startDeviceMotionUpdates];

//then every second it updates my label...

NSString *accel = [NSString stringWithFormat:@"%f", [[coreMotion accelerometerData]acceleration].x];
accelerationLabel.text = accel;

即我希望我的值像0.4,-0.4等一样

最佳答案

您可能要考虑低通滤波(显示在this SO post中),它实际上是Apple的准则(请参阅《事件处理编程指南》中的Isolating the Gravity Component from Acceleration Data)

如果您使用加速度计数据检测电流
设备的方向,您需要能够滤除该部分
由重力引起的加速度数据的一部分
设备运动引起的数据。为此,您可以使用
低通滤波器,以减少突然变化对
加速度计数据。得到的过滤值然后反映
引力作用更加恒定。

您还可以查看“从加速度数据中隔离瞬时运动”部分

如果您使用加速度计数据仅检测即时运动
设备,您需要能够隔离运动的突然变化
从不断的引力作用。您可以通过高通
过滤。

接下来给出了一个简单的实现方法。

关于iphone - 计算加速度(驾驶汽车),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8157731/

10-12 00:18