我需要将ARSCNView的二维坐标空间中的一个点转换为三维空间中的一个坐标。基本上是从观察点到接触点的光线(直到设定的距离)。
我想用arView.unprojectPoint(vec2d)来表示,但返回的点似乎总是位于视图的中心
vec2d是从这样的二维坐标创建的

SCNVector3(x, y, 0) // 0 specifies camera near plane

我做错什么了?我怎样才能得到想要的结果?

最佳答案

我想你需要这样一个函数:

func calcVector(screenPos: CGPoint) -> SCNVector3? {

    let planeTestResults = self.hitTest(screenPos, types: [.featurePoint])

    if let result = planeTestResults.first {
        return SCNVector3.positionFromTransform(result.worldTransform)
    }
    return nil
}

关于swift - ARSCNView unprojectPoint,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49573794/

10-10 21:34