Я только начал учиться использовать 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 должно быть:
![enter image description here](https://i.stack.imgur.com/4drwH.jpg)
Итак, я решил, что это будет 63.4 degrees
, но возвращаемое вращение показывает, что оно должно быть 35.8 degrees
.Что-то не так с моими вычислениями, я не полностью понимаю SCNVector4
, или есть другой способ сделать это?
Я посмотрел на Подробно объясняя метод ScnVector4 для чего SCNVector4
есть, но я до сих пор не понимаю, для чего w
.В нем говорится, что w
- это «угол поворота», который, как я думал, был для меня X, Y и Z.
Если у вас есть какие-либо вопросы, пожалуйста, задавайте!