目前,我正在开发一个需要检测iPhone是否启动和停止垂直移动的应用程序。我需要能够检测到很短的垂直距离(50-100厘米),即有人下蹲。

有没有一种方法可以计算出Core Motion framework

let motion = CMMotionManager()

if motion.isDeviceMotionAvailable {
    self.motion.deviceMotionUpdateInterval = 1.0 / 60.0
    self.motion.showsDeviceMovementDisplay = true

    self.motion.startDeviceMotionUpdates(using: .xMagneticNorthZVertical, to: .main, withHandler: { (data, error) in
        if let validData = data {
            // Just a random minimum acceleration threshold
            if validData.userAcceleration.y > 3 {
               print(validData.userAcceleration.y)
            }
         }
     })
}

最佳答案



Core Motion可以检测姿势(手机的方向)和加速度(手机启动或停止移动,加速或减速的方式)。平滑的垂直移动根本不会出现。您可能知道运动开始和结束,但是这些事件发生的距离并不大。您可能会基于初始加速度(这可以让您计算出行驶的速度)和减速之前的时间来猜测。但这不只是猜测。

关于ios - 计算iPhone沿垂直方向的短距离,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59897817/

10-11 08:43