使用ARKit检测手机移动轨迹和距离

时间:2017-12-06 09:36:59

标签: ios swift arkit

我希望记录手机的移动轨迹和距离。

因为我们可以使用ARKit测量真实世界的对象。

func distance(from vector: SCNVector3) -> Float {
    let distanceX = self.x - vector.x
    let distanceY = self.y - vector.y
    let distanceZ = self.z - vector.z

    return sqrtf( (distanceX * distanceX) + (distanceY * distanceY) + (distanceZ * distanceZ))
}

我可以在2 SCNVector3之间获得距离。

但我不知道如何在AR场景中记录手机当前的SCNVector3

是否可以使用ARKit测量手机移动距离和移动轨迹?

1 个答案:

答案 0 :(得分:1)

创建ARSession时,相机位于0,0,0,移动手机时它会移动。因此,如果您想知道手机距其原始位置的距离,只需查看当前帧的相机变换矩阵的平移部分:

frame.camera.transform

x y和z平移分量分别在m41, m42 and m43中。如果您不熟悉数学,请参阅apple core animation文档以获取有关矩阵的更多信息。