De/QAngle

From Valve Developer Community
< De
Revision as of 05:12, 26 April 2013 by Sacaldur (talk | contribs) (Created page with "{{otherlang2 |en=QAngle }} {{toc-right}} '''QAngle''' ist eine C++-Klasse, die einen 3-dimensionalen eulerschen winkel darstellt, versetzt von der kardinale [[Coordinates:de|Y-A...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Template:Otherlang2

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.

Template:Tip:de

Template:Note:de

Deklaration

QAngle angMyAngle = QAngle(-45,10,0);
  • Man kann den X-, Y- und Z-Membervariablen separat zuweisen.
  • Der Präfix ang (oder manchmal nur a) 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);

Siehe auch