Partager via


Quaternion Structure

Vecteur à quatre dimensions, utilisé pour représenter une rotation.

Un quaternion peut faire pivoter efficacement un objet autour du vecteur (x, y, z) par l’angle ntêta, où w = cos(theta/2). Les quaternions sont généralement utilisés pour une interpolation lisse entre deux angles et pour éviter le problème de verrouillage de cardan qui peut se produire avec les angles d’Euler.

Ce type est disponible uniquement en C++. Son équivalent .NET est System.Numerics.Quaternion.

Constructeurs

Nom Description
quaternion() Crée un quaternion non initialisé.
quaternion(float x, float y, float z, float w) Crée un quaternion avec les valeurs spécifiées.
quaternion(float3 vectorPart, float scalarPart) Crée un quaternion à partir d’un float3 et d’un scalaire.
quaternion(Microsoft::?Graphics::?Canvas::?Numerics::?Quaternion const& value) Convertit un Microsoft.Graphics.Canvas.Numerics.Quaternion en quaternion.

Fonctions

Name Description
quaternion make_quaternion_from_axis_angle(float3 const& axis, float angle) Crée un quaternion à partir d'un vecteur et d'un angle de rotation sur le vecteur.
quaternion make_quaternion_from_yaw_pitch_roll(float yaw, float pitch, float roll) Crée un quaternion à partir des angles de lacet, de tangage et de roulis spécifiés.
quaternion make_quaternion_from_rotation_matrix(float4x4 const& matrix) Crée un quaternion à partir d’une matrice de rotation.
bool is_identity(quaternion const& value) Vérifie s’il s’agit d’un quaternion d’identité (aucune rotation).
float length(quaternion const& value) Calcule la longueur d’un quaternion.
float length_squared(quaternion const& value) Calcule la longueur carrée d’un quaternion.
float dot(quaternion const& quaternion1, quaternion const& quaternion2) Calcule le produit scalaire de deux quaternions.
quaternion normalize(quaternion const& value) Divise chaque composant d’un quaternion par la longueur du quaternion.
quaternion conjugate(quaternion const& value) Calcule le conjugué d’un quaternion.
quaternion inverse(quaternion const& value) Calcule l’inverse d’un quaternion.
quaternion slerp(quaternion const& quaternion1, quaternion const& quaternion2, float amount) Effectue une interpolation entre deux quaternions, en utilisant une interpolation linéaire sphérique.
quaternion lerp(quaternion const& quaternion1, quaternion const& quaternion2, float amount) Interpole linéairement entre deux quaternions.
quaternion concatenate(quaternion const& value1, quaternion const& value2) Concatène deux quaternions ; le résultat représente la première rotation suivie de la deuxième.

Méthodes

Nom Description
static quaternion identity() Retourne une instance du quaternion d’identité.

Opérateurs

Name Description
quaternion operator+ (quaternion const& value1, quaternion const& value2) Ajoute deux quaternions.
quaternion operator- (quaternion const& value1, quaternion const& value2) Soustrait un quaternion d’un autre quaternion.
quaternion operator* (quaternion const& value1, quaternion const& value2) Multiplie un quaternion par un autre quaternion.
quaternion operator* (quaternion const& value1, float value2) Multiplie un quaternion par une valeur scalaire.
quaternion operator/ (quaternion const& value1, quaternion const& value2) Divise un quaternion par un autre quaternion.
quaternion operator- (quaternion const& value) Retourne le signe de chaque composant du quaternion.
quaternion& operator+= (quaternion& value1, quaternion const& value2) Sur place, deux quaternions sont ajoutés.
quaternion& operator-= (quaternion& value1, quaternion const& value2) In-place soustrait un quaternion d’un autre quaternion.
quaternion& operator*= (quaternion& value1, quaternion const& value2) In-place multiplie un quaternion par un autre quaternion.
quaternion& operator*= (quaternion& value1, float value2) In-place nultiplie un quaternion par une valeur scalaire.
quaternion& operator/= (quaternion& value1, quaternion const& value2) In-place divise un quaternion par un autre quaternion.
bool operator== (quaternion const& value1, quaternion const& value2) Détermine si deux instances de quaternion sont égales.
bool operator!= (quaternion const& value1, quaternion const& value2) Détermine si deux instances de quaternion ne sont pas égales.
operator Microsoft::?Graphics::?Canvas::?Numerics::?Quaternion() const Convertit un quaternion en Microsoft.Graphics.Canvas.Numerics.Quaternion.

Champs

Nom Description
float x Valeur X du composant vecteur du quaternion.
float y Valeur Y du composant vecteur du quaternion.
float z Valeur Z du composant vectoriel du quaternion.
float w Composant de rotation du quaternion.

Spécifications

Condition requise Valeur
Espace de noms Windows::Foundation::Numerics
En-tête
Windowsnumerics.h

Voir aussi

API windowsnumerics.h