我需要将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/