我在使用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这样的东西吗?或者它可能是一个不同的问题?谢谢!