Quaternionstruktur

Ein vierdimensionaler Vektor, der zur Darstellung einer Drehung verwendet wird.

Eine Quaternion kann ein Objekt effizient um den Vektor (x, y, z) um den Winkel theta drehen, wobei w = cos(theta/2) ist. Quaternionen werden in der Regel für eine reibungslose Interpolation zwischen zwei Winkeln und zur Vermeidung des Gimbalsperrproblems verwendet, das bei Eulerwinkeln auftreten kann.

Dieser Typ ist nur in C++ verfügbar. Die .NET-Entsprechung ist System.Numerics.Quaternion.

Konstruktoren

Name Beschreibung
quaternion() Erstellt eine nicht initialisierte Quaternion.
quaternion(float x, float y, float z, float w) Erstellt eine Quaternion mit den angegebenen Werten.
quaternion(float3 vectorPart, float scalarPart) Erstellt eine Quaternion aus float3 und einem Skalar.
quaternion(Microsoft::?Graphics::?Canvas::?Numerics::?Quaternion const& value) Konvertiert eine Microsoft.Graphics.Canvas.Numerics.Quaternion in eine Quaternion.

Funktionen

Name Beschreibung
quaternion make_quaternion_from_axis_angle(float3 const& axis, float angle) Erstellt eine Quaternion aus einem Vektor und einen Winkel für die Drehung um den Vektor.
quaternion make_quaternion_from_yaw_pitch_roll(float yaw, float pitch, float roll) Erstellt eine Quaternion aus angegebenen Gier-, Tonhöhen- und Rollwinkeln.
quaternion make_quaternion_from_rotation_matrix(float4x4 const& matrix) Erstellt eine Quaternion aus einer Drehungsmatrix.
bool is_identity(quaternion const& value) Überprüft, ob es sich um eine Identitäts-Quaternion (keine Rotation) handelt.
float length(quaternion const& value) Berechnet die Länge einer Quaternion.
float length_squared(quaternion const& value) Berechnet die Quadratlänge einer Quaternion.
float dot(quaternion const& quaternion1, quaternion const& quaternion2) Berechnet das Skalarprodukt von zwei Quaternionen.
quaternion normalize(quaternion const& value) Dividiert jede Komponente einer Quaternion durch die Länge der Quaternion.
quaternion conjugate(quaternion const& value) Berechnet die Konjugierung einer Quaternion.
quaternion inverse(quaternion const& value) Berechnet die Umkehrung einer Quaternion.
quaternion slerp(quaternion const& quaternion1, quaternion const& quaternion2, float amount) Interpoliert zwischen zwei Quaternionen mit der Methode der sphärischen linearen Interpolation.
quaternion lerp(quaternion const& quaternion1, quaternion const& quaternion2, float amount) Interpoliert linear zwischen zwei Quaternionen.
quaternion concatenate(quaternion const& value1, quaternion const& value2) Verkettet zwei Quaternionen: Das Ergebnis stellt die erste Drehung dar, gefolgt von der zweiten Drehung.

Methoden

Name Beschreibung
static quaternion identity() Gibt eine Instanz der Identitäts quaternion zurück.

Operatoren

Name Beschreibung
quaternion operator+ (quaternion const& value1, quaternion const& value2) Fügt zwei Quaternionen hinzu.
quaternion operator- (quaternion const& value1, quaternion const& value2) Subtrahiert eine Quaternion von einer anderen Quaternion.
quaternion operator* (quaternion const& value1, quaternion const& value2) Multipliziert eine Quaternion mit einer anderen Quaternion.
quaternion operator* (quaternion const& value1, float value2) Multipliziert eine Quaternion mit einem Skalarwert.
quaternion operator/ (quaternion const& value1, quaternion const& value2) Dividiert eine Quaternion durch eine andere Quaternion.
quaternion operator- (quaternion const& value) Flips the sign of each component of the quaternion. (Kehre das Vorzeichen jeder Komponente der Quaternion um.
quaternion& operator+= (quaternion& value1, quaternion const& value2) Durch die platzierungsbasierte Erweiterung werden zwei Quaternionen hinzugefügt.
quaternion& operator-= (quaternion& value1, quaternion const& value2) Eine Quaternion wird von einer anderen Quaternion subtrahiert.
quaternion& operator*= (quaternion& value1, quaternion const& value2) In-Place multipliziert eine Quaternion mit einer anderen Quaternion.
quaternion& operator*= (quaternion& value1, float value2) In-Place nultiplies a quaternion by a scalar value.
quaternion& operator/= (quaternion& value1, quaternion const& value2) Eine Quaternion wird durch eine andere Quaternion dividiert.
bool operator== (quaternion const& value1, quaternion const& value2) Bestimmt, ob zwei Instanzen der Quaternion gleich sind.
bool operator!= (quaternion const& value1, quaternion const& value2) Bestimmt, ob zwei Instanzen der Quaternion ungleich sind.
operator Microsoft::?Graphics::?Canvas::?Numerics::?Quaternion() const Konvertiert eine Quaternion in eine Microsoft.Graphics.Canvas.Numerics.Quaternion.

Felder

Name Beschreibung
float x X-Wert der Vektorkomponente der Quaternion.
float y Y-Wert der Vektorkomponente der Quaternion.
float z Z-Wert der Vektorkomponente der Quaternion.
float w Drehungskomponente der Quaternion.

Anforderungen

Anforderung Wert
Namespace Windows::Foundation::Numerics
Header
Windowsnumerics.h

Weitere Informationen

windowsnumerics.h-APIs