Freigeben über


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 glatte Interpolation zwischen zwei Winkeln verwendet, und um das Gimbal-Sperrproblem zu vermeiden, das mit Euler-Winkeln auftreten kann.

Dieser Typ ist nur in C++ verfügbar. Das .NET-Äquivalent ist System.Numerics.Quaternion.

Erbauer

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 einem Float3- und 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 einem Winkel, um den Vektor zu drehen.
quaternion make_quaternion_from_yaw_pitch_roll(float yaw, float pitch, float roll) Erstellt eine Quaternion aus angegebenen Gierwinkeln, Neigungs- 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ätsquaternion (keine Drehung) handelt.
float length(quaternion const& value) Berechnet die Länge einer Quaternion.
float length_squared(quaternion const& value) Berechnet die Länge eines Quaternions.
float dot(quaternion const& quaternion1, quaternion const& quaternion2) Berechnet das Punktprodukt 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 das Konjugat 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, wobei die sphärische lineare Interpolation verwendet wird.
quaternion lerp(quaternion const& quaternion1, quaternion const& quaternion2, float amount) Linear interpoliert zwischen zwei Quaternionen.
quaternion concatenate(quaternion const& value1, quaternion const& value2) Verkettet zwei Quaternionen; das Ergebnis stellt die erste Drehung gefolgt von der zweiten Drehung dar.

Methodik

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

Betriebspersonal

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 durch eine andere Quaternion.
quaternion operator* (quaternion const& value1, float value2) Multipliziert eine Quaternion mit einem skalaren Wert.
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.
quaternion& operator+= (quaternion& value1, quaternion const& value2) In-situ fügt zwei Quaternionen hinzu.
quaternion& operator-= (quaternion& value1, quaternion const& value2) In-situ subtrahiert eine Quaternion von einer anderen Quaternion.
quaternion& operator*= (quaternion& value1, quaternion const& value2) In-situ multipliziert eine Quaternion durch eine andere Quaternion.
quaternion& operator*= (quaternion& value1, float value2) In-Situ multipliziert eine Quaternion mit einem skalaren Wert.
quaternion& operator/= (quaternion& value1, quaternion const& value2) In-Situ teilt eine Quaternion durch eine andere Quaternion.
bool operator== (quaternion const& value1, quaternion const& value2) Bestimmt, ob zwei Instanzen von Quaternion gleich sind.
bool operator!= (quaternion const& value1, quaternion const& value2) Bestimmt, ob zwei Instanzen von Quaternion nicht gleich sind.
operator Microsoft::?Graphics::?Canvas::?Numerics::?Quaternion() const Wandelt eine Quaternion in eine Microsoft.Graphics.Canvas.Numerics.Quaternion um.

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
Kopfzeile
Windowsnumerics.h

Siehe auch

windowsnumerics.h-APIs