二维空间中的锚定位置

时间:2019-01-11 04:50:32

标签: ios swift arkit aranchor

所以我在ARKit中使用ARAnchorsARImageTrackingConfiguration()。我正在使用具有不同彩色背景的同一ARAnchor的多个版本。我希望能够识别ARAnchor的背景颜色(因为如果我将它们全部注册为ARAnchors,即使它们具有不同的背景,它们也会混合在一起)。我正在考虑的方法是获取ARAnchor在2D空间中的位置,然后获取帧like this中像素的颜色。

问题是我找不到在2D空间中获得ARAnchor位置的方法。我正在使用如下设置。如果您有任何知道如何转换坐标的方法或更好的方法,请告诉我。

func renderer(_ renderer: SCNSceneRenderer, nodeFor anchor: ARAnchor) -> SCNNode? {

    let node = SCNNode()

    if let imageAnchor = anchor as? ARImageAnchor {

        if (anchor.name == "EXAMPLE MARKER") {
            let plane = SCNPlane(width: imageAnchor.referenceImage.physicalSize.width, height: imageAnchor.referenceImage.physicalSize.height)
            plane.firstMaterial?.diffuse.contents = UIImage(named: "EXAMPLE")
            let planeNode = SCNNode(geometry: plane)
            planeNode.eulerAngles.x = -.pi / 2
            node.addChildNode(planeNode)

            // HOW TO CONVERT ANY OF THESE COORDINATE SYSTEMS TO GRECT? CGPOINT?

        }
    }

    return node
}

我试图按照以下方式获得位置,但总是以全零的形式出现

print(anchor.accessibilityFrame)
print(imageAnchor.accessibilityFrame)
print(node.frame)
print(node.boundingBox.max,node.boundingBox.min)

结果

  

(0.0,0.0,0.0,0.0)

     

(0.0,0.0,0.0,0.0)

     

(0.0,0.0,0.0,0.0)

     

SCNVector3(x:0.0,y:0.0,z:0.0)SCNVector3(x:0.0,y:0.0,z:0.0)

0 个答案:

没有答案