目前,我正在开发一个需要检测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/