我需要使用 ARKit 找到房间内两点之间的距离。我将解释我的情况。在房间内,我有一个预定义的点。假设该点是 (x1,y1,z1)。我从 ARKit ARCamera.transform 的当前位置获取了这个值。我动态地移动到另一个点,其 ARCamera.transform 的当前位置是 (x2,y2,z2)。我的目的是找到两者之间的真实世界距离。
func session(_ session: ARSession, didUpdate frame: ARFrame) {
let currentFrame = frame.camera.transform
let x = frame.camera.transform.columns.3.x
let y = frame.camera.transform.columns.3.y
let z = frame.camera.transform.columns.3.z
print( "camera transform :\(x),\(y),\(z)")
}
请找到上面用于获取相机当前位置的代码。
现在问题来了。(x2,y2,z2) 每次我在同一个物理点测试时都不同(请注意,我的起点保持不变,因此 ARKit 会话每次都在同一点开始),因此距离变化较大。简而言之,我不能依靠 ARKit 以一种有用的方式给出我相机的当前点,ARCamera.transform 的当前位置似乎是一个随机值,取决于一些未知的事实。在谷歌搜索中,我看到 ARCamera.transform 的当前位置给出了设备摄像头的位置。如果有错误,任何人都可以指出解决方案或纠正我,或者请告诉我 ARCamera.transform 的当前位置到底是什么,或者我们如何在现实世界定位中使用 ARCamera.transform 的当前位置?