我希望记录手机的移动轨迹和距离。
因为我们可以使用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测量手机移动距离和移动轨迹?
答案 0 :(得分:1)
创建ARSession时,相机位于0,0,0,移动手机时它会移动。因此,如果您想知道手机距其原始位置的距离,只需查看当前帧的相机变换矩阵的平移部分:
frame.camera.transform
x y和z平移分量分别在m41
, m42
and m43
中。如果您不熟悉数学,请参阅apple core animation文档以获取有关矩阵的更多信息。