SCNCamera EulerAngle to (rho, phi, theta)? - PullRequest
       79

SCNCamera EulerAngle to (rho, phi, theta)?

0 голосов
/ 07 января 2020

Я использовал эту библиотеку https://github.com/scihant/CTPanoramaView для отображения панорамного изображения, и я хотел отобразить другое маленькое изображение (SCNNode) в позиции касания. Мне удалось как-то сделать это с помощью некоторых функций SDK, например:

    @objc private func viewTapped(_ tapGesture: UITapGestureRecognizer) {
        let p = tapGesture.location(in: sceneView)
        let hitResults = sceneView.hitTest(p, options: [:])

        if hitResults.count > 0 {
            let result: SCNHitTestResult = hitResults[0]
            let material = SCNMaterial()
            material.isDoubleSided = true
            material.cullMode = .front
            material.diffuse.contents = UIImage(named: "smile")!

            let plane = SCNPlane(width: 2.0, height: 2.0)
            plane.firstMaterial = material

            let imageNode = SCNNode()
            imageNode.geometry = plane
            imageNode.position = result.worldCoordinates
            let billboardConstraint = SCNBillboardConstraint()
            billboardConstraint.freeAxes = [.X, .Y, .Z]
            imageNode.constraints = [billboardConstraint]

            scene.rootNode.addChildNode(imageNode)
        }
    }

Но я должен заставить его работать в приложении Android, которое использует OpenGL для отображения панорамного изображения и использует Различное соглашение по расположению изображения (узла) на текстуре OpenGL, потому что они вычисляют углы фи и тета, чтобы определить положение изображения, поэтому я теперь не понимаю, как сделать их оба совместимыми.

Есть ли у меня преобразовать мой eulerAngle в углы phi / theta или сначала получить phi / theta, а затем преобразовать его в eulerAngle? Или что?

Любые советы будут оценены :(

Спасибо!

...