ARAnchor позиция в 2D пространстве - PullRequest
0 голосов
/ 11 января 2019

Так что я использую 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)

...