1

ARKit所以我ARAnchors在一个ARImageTrackingConfiguration(). 我正在使用ARAnchor具有不同颜色背景的多个版本。我希望能够获得ARAnchor被识别的背景颜色(因为如果我将它们全部注册,因为ARAnchors即使它们具有不同的背景也会混合它们)。我想这样做的方法是获取ARAnchor2D 空间中的位置,然后像这样获取帧内像素的颜色。

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

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)

4

0 回答 0