QAngle
QAngle ist eine C++-Klasse, die einen 3-dimensionalen eulerschen winkel darstellt, versetzt von der kardinale Y-Achse . Jeder QAngle beinhaltet 3 vec_t -Rotationswerte:
- X Steigung +runter/-hoch
- Y Kursabweichung +links/-rechts
- Z Drehung +rechts/-links
(-45,10,0)
bedeutet 45 ° hoch, 10 ° links und 0 ° Drehung.
Deklaration
QAngle angMyAngle = QAngle(-45,10,0);
- Man kann den X-, Y- und Z-Membervariablen separat zuweisen.
- Der Präfix
ang
(oder manchmal nura
) identifiziert die Variable als Winkel ("angle").
Orientierun
Verwirrenderweise richtet sich keine Rotationsachse in Source nach den Positionsachsen -Gegenstücken.
Noch verwirrender ist, dass Hammer die Rotationsachsen als Y, Z, X auflistet! Das ist gänzlich falsch, aber zum Glück sind das nur Beschriftungen: die Werte werden als ein einfacher String gespeichert (z. B. "-45 10 0") und durch das Spiel als rX rY rZ interpretiert.
Man sollte beachten, dass die Richtung eines Winkels durch seinen Bezugsrahmen bestimmt wird. Typischerweise wird es entweder die Welt oder eine Entity sein.
Aus Vektor konvertieren
Da es kein speziefisches Datenbeschreibungs-Schlüsselfeld für Winkel gibt, wird ein in Hammer gewählter als Vektor ankommen. Seine Komponenten werden einen Grad der Drehung repräsentieren und keine Koordinaten, also muss dies vorher angepasst werden:
QAngle angMyAngle = QAngle(vecFromHammer.x, vecFromHammer.y, vecFromHammer.z);
// Umwandlung zurück in einen Vektor, sofern notwendig
AngleVectors(angMyAngle, &vecFromHammer);