SWIFT:应该用什么来计算设备的旋转 - 重力或旋转速度?

时间:2017-04-08 14:47:47

标签: ios swift rotation gravity motion

我在使用iPhone测量旋转时遇到问题 - 在移动时,设备似乎被愚弄了#34;并没有显示出确切的偏差。我使用以下代码旋转指南针轮:

if manager.isDeviceMotionAvailable {
manager.deviceMotionUpdateInterval = 0.01
manager.startDeviceMotionUpdates(to: queue) {
    [weak self] (data: CMDeviceMotion?, error: Error?) in
    if let gravity = data?.gravity {
        let rotation = atan2(gravity.x, gravity.y) - M_PI //compute rotation
        self?.imageView.transform = CGAffineTransform(rotationAngle: rotation)
    }
  }
}

一切都很好,而iPhone不动。为了说明我附加了一个简短的clip(特别是在剪辑的末尾看到了问题)。您可以看到读数(绿色曲线)延迟,有时显示错误的角度(与汽车的方向盘位置相比)。那是因为我使用重力变量吗?我应该使用像rotationRate这样的东西吗?或者它可能是一个不同的问题?谢谢!

0 个答案:

没有答案