[注意:这个问题是针对 iOS11/High Sierra 预发布期间的 ARKit 测试版编写的。仅出于历史兴趣而保留]
当我将 设置为 时,我看到世界原点的位置和方向ARWorldTrackingSessionConfiguration.worldAlignment
不稳定.gravityAndHeading
。
场景打开后原点位置稳定。但轴通常绕 Y 轴旋转 180 度或 90 度。
我还缺少其他设置吗?我正在运行 2017 iPad(原版,而不是 Pro)和 Xcode 9 beta 2。我在这台 iPad 上测试了一些指南针应用程序,它们给了我正确的结果,所以我相信硬件工作正常。
override func viewDidLoad() {
super.viewDidLoad()
// Set the view's delegate
sceneView.delegate = self
// Show statistics such as fps and timing information
sceneView.showsStatistics = true
// Create a new scene
let scene = SCNScene()
// debug options
let debugOptions: SCNDebugOptions = [ARSCNDebugOptions.showFeaturePoints,ARSCNDebugOptions.showWorldOrigin]
sceneView.debugOptions = debugOptions
// Set the scene to the view
sceneView.scene = scene
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// Create a session configuration
let configuration = ARWorldTrackingSessionConfiguration()
configuration.worldAlignment = .gravityAndHeading
configuration.planeDetection = .horizontal
// Run the view's session
sceneView.session.run(configuration)
}
这是一些样本(在所有样本中,我都朝南)。
正 X 和 Z 点西和北(不正确,180 度异相):
正 X 和 Z 点东南东南和西南西南(接近正确):
正 X 和 Z 指向东和南(正确),但原点偏移了几米:
正 X 和 Z 点南和西(90 度异相):
y 轴与设备的运动感应硬件检测到的重力方向相匹配;即向量 (0,-1,0) 指向下方。
x 轴和 z 轴与定位服务测量的经度和纬度方向相匹配。向量 (0,0,-1) 指向真北,向量 (-1,0,0) 指向西。(即,正 x 轴、y 轴和 z 轴分别指向东、上和南。)