我正在尝试像应用程序“Dynolicious”一样复制加速度计算,但我不确定该去哪里计算。我用吗Core Motion
或者我使用其他数字进行计算?
我尝试过使用Core Motion
's userAcceleraion
值,但它根本不像我正在寻找的那样。
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 等。
您可能需要考虑低通滤波(如图所示)这个帖子 https://stackoverflow.com/questions/1211589/uiacceleration-filtering),这实际上是 Apple 指南(请参阅从加速度数据中分离重力分量 http://developer.apple.com/library/ios/#documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/MotionEvents/MotionEvents.html事件处理编程指南)
如果您使用加速度计数据来检测当前
设备的方向,您需要能够过滤掉该部分
来自该部分的重力引起的加速度数据
由设备运动引起的数据。为此,您可以使用
低通滤波器,以减少突然变化对
加速度计数据。过滤后的值反映了
重力的影响更恒定。
您还可以查看“从加速度数据中分离瞬时运动”部分
如果您使用加速度计数据来检测即时运动
对于设备,您需要能够隔离运动的突然变化
来自重力的恒定作用。你可以用高通来做到这一点
筛选。
接下来给出了一个简单的实现来完成此任务。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)