有人知道如何改善ARKit中的测量。
我当前的ARConfiguration是:
let configuration = ARWorldTrackingConfiguration()
configuration.maximumNumberOfTrackedImages = 10
configuration.environmentTexturing = .automatic
configuration.planeDetection = [.horizontal , .vertical]
configuration.isLightEstimationEnabled = true
configuration.worldAlignment = .gravity
我尝试计算两个SCNNode之间的距离。有什么方法可以改善这一点?我尝试计算2m-10m之间的距离。有时候偏差对我来说太高了(30 cm +)。
是否可以使用这些平面来提高精度?还是其他想法?
感谢帮助。
答案 0 :(得分:0)
SCNNodes已在载体的位置看到documentation
从两个场景节点的这两个属性,您可以使用简单的物理方法计算它们之间的距离。例如你可以计算二维的距离,在3D世界的距离。一个例子可以用这些2个分机完成。
extension SCNVector3 {
static func distanceFrom(vector vector1: SCNVector3, toVector vector2: SCNVector3) -> Float {
let x0 = vector1.x
let x1 = vector2.x
let y0 = vector1.y
let y1 = vector2.y
let z0 = vector1.z
let z1 = vector2.z
return sqrtf(powf(x1-x0, 2) + powf(y1-y0, 2) + powf(z1-z0, 2))
}
}
然后在主类中可以像这样调用静态函数
let scnNode1 = SCNNode() //Your test node
let scnNode2 = SCNNode() //Your test node
let distance = SCNVector3.distanceFrom(vector: scnNode1.position, toVector: scnNode2.position)