← SEARCHABLE ARCHIVE
Mathematics · 2026-07-06

Konvertieren Sie Position, Drehung und Skalierung mithilfe von Matrizen

Die Transformation eines Spielobjekts als Matrix ausdrücken

INTERACTIVE READING MODE →

Die in diesem Blog verfassten Artikel wurden mit dem Ziel erstellt, zu unterrichten. Außerdem können die Informationen im Artikel falsch sein, also seien Sie bitte vorsichtig.

Die Position, Drehung und Größe eines Spielobjekts kann als Matrix ausgedrückt werden. Lassen Sie uns zunächst die Transformation anhand des Ursprungs in 2D überprüfen.

Größenumrechnung

[ sx  0 ] [ x ] = [ sx * x ]
[ 0  sy ] [ y ]   [ sy * y ]

Die X-Achse istsx, Y-Achse istsysteigt um so viel wie Wenn einer der beiden negativ ist, wird er basierend auf dieser Achse umgedreht.

Rotationstransformation

[ cosθ  -sinθ ] [ x ]
[ sinθ   cosθ ] [ y ]

Diese Matrix dreht den Vektor um θ um den Ursprung. Achten Sie darauf, Funktionen, die Degree erhalten, nicht mit Funktionen zu vermischen, die Radian erhalten.

Warum ist die Bewegung 3×3?

Mit nur einer 2×2-Matrix kann der Ursprung nicht an einen anderen Ort verschoben werden. Also in 2D-Koordinatenw = 1Verwenden Sie homogene Koordinaten mit dem Zusatz von .

[ 1 0 tx ] [ x ]   [ x + tx ]
[ 0 1 ty ] [ y ] = [ y + ty ]
[ 0 0  1 ] [ 1 ]   [   1    ]

In 3D wird aus dem gleichen Grund eine 4×4-Matrix verwendet.

Ergebnisse von Auftragsänderungen

Das Verdoppeln der Größe eines Objekts und das anschließende Verschieben um 10 Grad nach rechts führt zu anderen Ergebnissen, als wenn man es zuerst verschiebt und dann die gesamten Koordinaten verdoppelt.

Scale → Translate
Position verschiebt sich um 10

Translate → Scale
Bewegungsmenge kann verdoppelt werden

Da sich jede Engine und jede Mathematikbibliothek darin unterscheidet, ob Vektoren in Zeilen oder Spalten platziert werden, muss die Multiplikationsreihenfolge des Codes in der Dokumentation überprüft werden. Wichtiger als die Matrix selbst ist, in welchem ​​Koordinatensystem und in welcher Reihenfolge sie angewendet wird.