ARAnchor позиция в 2D пространстве

Так что я использую ARKit а также ARAnchors в ARImageTrackingConfiguration(), Я использую несколько версий одного и того же ARAnchor с разноцветными фонами. Я хотел бы иметь возможность получить цвет фона ARAnchor быть признанным (потому что, если я зарегистрирую их все как ARAnchors это смешивает их, даже если у них разные фоны). То, как я думал об этом, состояло в том, чтобы получить положение ARAnchor в 2D-пространстве, а затем получить цвет пикселя в кадре, как это.

Проблема в том, что я не могу найти способ получить 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)

0 ответов

Другие вопросы по тегам