【发布时间】:2018-10-04 17:45:41
【问题描述】:
我昨天刚开始学习如何使用SceneKit,所以我可能会弄错或不正确的东西。我试图让我的cameraNode 看到场景中的SCNVector3 点。
我正在尝试向iOS 11.0 以下的人提供我的应用程序。但是,look(at:) 函数仅适用于iOS 11.0+。
这是我初始化相机的函数:
func initCamera() {
cameraNode = SCNNode()
cameraNode.camera = SCNCamera()
cameraNode.position = SCNVector3(5, 12, 10)
if #available(iOS 11.0, *) {
cameraNode.look(at: SCNVector3(0, 5, 0)) // Calculate the look angle
} else {
// How can I calculate the orientation? <-----------
}
print(cameraNode.rotation) // Prints: SCNVector4(x: -0.7600127, y: 0.62465125, z: 0.17941462, w: 0.7226559)
gameScene.rootNode.addChildNode(cameraNode)
}
SCNVector4(x: -0.7600127, y: 0.62465125, z: 0.17941462, w: 0.7226559) 的度数方向是x: -43.5, y: 35.8, z: 10.3,我看不懂w。 (另外,为什么不是z = 0?我以为z 是滚动...?)
这是我重新创建我认为的 Y 角 应该是什么的工作:
所以我算出它是63.4 degrees,但返回的旋转显示它应该是35.8 degrees。是不是我的计算有问题,我是不是完全看不懂SCNVector4,还是有其他方法可以做到这一点?
我查看了Explaining in Detail the ScnVector4 method 的SCNVector4 是什么,但我仍然不明白w 是什么。它说w 是“旋转角度”,我认为这就是我认为 X、Y 和 Z 的用途。
如果您有任何问题,请提出!
【问题讨论】:
标签: ios swift scenekit trigonometry