Wie kann ich berechnen, einen multi-Achsen-SCNVector4 rotation für eine SCNNode?
Den SCNNode nehmen Sie eine Drehbewegung mit einem SCNVector4
, die einen Winkel (w) und einer Größenordnung wie dieser Winkel gilt für jede Achse (x, y, z). Zum Beispiel, drehen 45 Grad um die x-Achse würde ich erstellen Sie eine SCNVector4
wie diese:
SCNVector4Make(1.0f, 0, 0, DEG2RAD(45))
Was ich möchte zu tun ist, drehen Sie es über alle drei Achsen, zum Beispiel: 45 Grad auf der x-Achse, 15 Grad auf der y-Achse und -135 Grad über der z-Achse. Kennt jemand die Mathematik, die zum berechnen der endgültigen SCNVector4
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Benötigen Sie zum generieren eines SCNVector4 für jede der Drehungen, und dann vermehren. Beachten Sie, dass die Reihenfolge der Operationen ist wichtig!
http://www.cprogramming.com/tutorial/3d/rotationMatrices.html hat ein ziemlich gutes Dokument der Mathematik. Jede OpenGL-Referenz, die sich mit der rotation Matrizen lohnt sich einen Blick zu.
Statt
rotation
- Eigenschaft, verwendeneulerAngles
und geben Sie den Winkel für jede AchseeulerAngles
und nichtrotation
?rotation
= Ausrichtung, ausgedrückt als Drehwinkel um eine Achse,eulerAngles
= Ausrichtung, ausgedrückt als pitch -, yaw-und roll-Winkel jeweils im BogenmaßWenn Sie nicht animieren der rotation, es könnte sauberer sein, legen Sie die Transformationsmatrix direkt, wie:
Fragst du nach rotation matrix oder wie man Sie einfach drehen Sie im Allgemeinen? Wenn das zweite richtig ist dann zum Beispiel: