我目前正在尝试准确跟踪用户围绕像汽车这样的物体的度数移动。
当用户在汽车周围移动时,用户将横向移动iPhone。我想拍摄用户在汽车周围旋转的每个度数的照片。
我目前正在使用CoreMotion
来尝试确定Yaw
。
let queue = OperationQueue.main
motionManager.deviceMotionUpdateInterval = 1 / 30
motionManager.startDeviceMotionUpdates(using: .xArbitraryZVertical, to: queue) { (motion, error) in
if let deviceMotion = motion {
let quat = deviceMotion.attitude.quaternion
let ysqr = quat.y * quat.y
let t3 = 2.0 * (quat.w * quat.z + quat.x * quat.y)
let t4 = 1.0 - 2.0 * (ysqr + quat.z * quat.z)
let yaw = atan2(t3, t4)
print(round(self.degrees(yaw)))
}
}
我注意到,当我在设备Yaw
或Pitch
发生变化时,Roll
受到影响时,我会移动该对象。
无论如何,我可以准确地跟踪物体周围360度旋转的Yaw
吗?
答案 0 :(得分:1)
您可能希望看到的是使用CoreLocation
(具体为CLLocationManager
和startUpdatingHeading
)来获取设备的标题。
获取设备的当前标题并快速更新更加可靠。