Freigeben über


quaternion-Struktur

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