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

3
我正在尝试找到场景中相机的坐标,但最终得到的是不同系统下的坐标。例如(0.0134094329550862),在场景坐标系下约为1厘米,但移动距离明显更大。
我通过以下方式获取坐标:
let cameraCoordinates = self.sceneView.pointOfView?.worldPosition

self.POSx = Double((cameraCoordinates?.x)!)
self.POSy = Double((cameraCoordinates?.y)!)
self.POSz = Double((cameraCoordinates?.z)!)
1个回答

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))
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接