quaternion-Struktur
Artikel 06/13/2023
4 Mitwirkende
Feedback
In diesem Artikel
Ein vierdimensionaler Vektor, der verwendet wird, um eine Drehung darzustellen.
Ein 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 Problems der Gimbalsperre 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 einem float3- und skalaren.
quaternion(Microsoft::?Graphics::?Canvas::?Numerics::?Quaternion const& value)
Konvertiert eine Microsoft.Graphics.Canvas.Numerics.Quaternion in ein Quaternion.
Functions
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-, Ton- und Rollwinkeln.
quaternion make_quaternion_from_rotation_matrix(float4x4 const& matrix)
Erstellt eine Quaternion aus einer Rotationsmatrix.
bool is_identity(quaternion const& value)
Überprüft, ob es sich um eine Identitätsquaternion (keine Rotation) handelt.
float length(quaternion const& value)
Berechnet die Länge eines Quaternions.
float length_squared(quaternion const& value)
Berechnet die Quadratlänge eines Quaternions.
float dot(quaternion const& quaternion1, quaternion const& quaternion2)
Berechnet das Skalarprodukt von zwei Quaternionen.
quaternion normalize(quaternion const& value)
Unterteilt jede Komponente eines Quaternions durch die Länge des Quaternions.
quaternion conjugate(quaternion const& value)
Berechnet das Konjugat eines Quaternions.
quaternion inverse(quaternion const& value)
Berechnet die Inverse eines Quaternions.
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 gefolgt von der zweiten Drehung dar.
Methoden
Name
BESCHREIBUNG
static quaternion identity()
Gibt einen instance der Identitätsquaternion 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 einem anderen Quaternion.
quaternion operator* (quaternion const& value1, quaternion const& value2)
Multipliziert eine Quaternion mit einem anderen Quaternion.
quaternion operator* (quaternion const& value1, float value2)
Multipliziert eine Quaternion mit einem skalaren Wert.
quaternion operator/ (quaternion const& value1, quaternion const& value2)
Dividiert ein Quaternion durch ein anderes Quaternion.
quaternion operator- (quaternion const& value)
Kippt das Vorzeichen jeder Komponente der 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 ein Quaternion von einem anderen Quaternion.
quaternion& operator*= (quaternion& value1, quaternion const& value2)
In-situ multipliziert eine Quaternion mit einem anderen Quaternion.
quaternion& operator*= (quaternion& value1, float value2)
In-situ nuliert eine Quaternion durch einen skalaren Wert.
quaternion& operator/= (quaternion& value1, quaternion const& value2)
In-situ dividiert ein Quaternion durch ein anderes 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
Konvertiert eine Quaternion in eine Microsoft.Graphics.Canvas.Numerics.Quaternion .
Felder
Name
BESCHREIBUNG
float x
X-Wert der Vektorkomponente des Quaternions.
float y
Y-Wert der Vektorkomponente des Quaternions.
float z
Z-Wert der Vektorkomponente des Quaternions.
float w
Rotationskomponente der Quaternion.
Anforderungen
Anforderung
Wert
Namespace
Windows::Foundation::Numerics
Header
Windowsnumerics.h
Siehe auch
windowsnumerics.h-APIs