如何将相机坐标转换为场景的坐标空间?

时间:2018-09-09 16:49:00

标签: ios swift scenekit augmented-reality arkit

我试图在所创建的场景中找到相机的坐标,但最终在另一个系统中找到了坐标。诸如({0.0134094329550862之类的坐标,在场景坐标系中大约为1cm,而移动得更多。

我这样做是为了获得坐标:

let cameraCoordinates = self.sceneView.pointOfView?.worldPosition

self.POSx = Double((cameraCoordinates?.x)!)
self.POSy = Double((cameraCoordinates?.y)!)
self.POSz = Double((cameraCoordinates?.z)!)

1 个答案:

答案 0 :(得分:0)

这就是我找到相机坐标及其方向的方法。

func getUserVector() -> (SCNVector3, SCNVector3) {
    if let frame = self.sceneView.session.currentFrame {
        let mat = SCNMatrix4(frame.camera.transform)
        let dir = SCNVector3(-1 * mat.m31, -1 * mat.m32, -1 * mat.m33)
        let pos = SCNVector3(mat.m41, mat.m42, mat.m43)
        return (dir, pos)
    }
    return (SCNVector3(0, 0, -1), SCNVector3(0, 0, -0.2))
}