【问题标题】:Calculate Acceleration (Driving a Car)计算加速度(驾驶汽车)
【发布时间】:2011-11-16 19:48:59
【问题描述】:

我正在尝试复制应用程序“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 等一样。

【问题讨论】:

    标签: iphone objective-c ios core-motion


    【解决方案1】:

    您可能需要考虑低通滤波(如 this SO post 所示),这实际上是 Apple 的指南(请参阅事件处理编程指南的 Isolating the Gravity Component from Acceleration Data

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

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

    如果您使用加速度计数据仅检测即时运动 的设备,您需要能够隔离运动的突然变化 来自重力的恒定作用。你可以用高通来做到这一点 过滤器。

    它接着给出了一个简单的实现来完成这个。

    【讨论】:

      【解决方案2】:

      Apple 在http://developer.apple.com/library/ios/#documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/MotionEvents/MotionEvents.html 获得了一些关于收集加速信息的好文档

      看起来您需要设置加速度计,然后使用委托方法来读取数据。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-11-21
        • 2020-06-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-29
        相关资源
        最近更新 更多