Condividi tramite


Struttura quaternion

Vettore quattro dimensionale, usato per rappresentare una rotazione.

Un quaternione può ruotare in modo efficiente un oggetto sul vettore (x, y, z) dall'angolo dell'angolo, dove w = cos(theta/2). I quaternioni vengono in genere usati per l'interpolazione uniforme tra due angoli e per evitare il problema del blocco gimbalo che può verificarsi con angoli euleri.

Questo tipo è disponibile solo in C++. L'equivalente .NET è System.Numerics.Quaternion.

Costruttori

Nome Descrizione
quaternion() Crea un quaternione non inizializzato.
quaternion(float x, float y, float z, float w) Crea un quaternione con i valori specificati.
quaternion(float3 vectorPart, float scalarPart) Crea un quaternione da un float3 e scalare.
quaternion(Microsoft::?Graphics::?Canvas::?Numerics::?Quaternion const& value) Converte un oggetto Microsoft.Graphics.Canvas.Numerics.Quaternion in un quaternion .

Funzioni

Nome Descrizione
quaternion make_quaternion_from_axis_angle(float3 const& axis, float angle) Crea un quaternione da un vettore e un angolo per la rotazione intorno al vettore.
quaternion make_quaternion_from_yaw_pitch_roll(float yaw, float pitch, float roll) Crea un quaternione da angoli di yaw, pitch e roll specificati.
quaternion make_quaternion_from_rotation_matrix(float4x4 const& matrix) Crea un quaternione da una matrice di rotazione.
bool is_identity(quaternion const& value) Verifica se si tratta di un quaternione identity (nessuna rotazione).
float length(quaternion const& value) Calcola la lunghezza di un quaternione.
float length_squared(quaternion const& value) Calcola la lunghezza quadrata di un quaternione.
float dot(quaternion const& quaternion1, quaternion const& quaternion2) Calcola il prodotto scalare di due quaternioni.
quaternion normalize(quaternion const& value) Divide ogni componente di un quaternione per la lunghezza del quaternione.
quaternion conjugate(quaternion const& value) Calcola la combinazione di un quaternione.
quaternion inverse(quaternion const& value) Calcola l'inverso di un quaternione.
quaternion slerp(quaternion const& quaternion1, quaternion const& quaternion2, float amount) Esegue l'interpolazione tra due quaternioni usando l'interpolazione lineare sferica.
quaternion lerp(quaternion const& quaternion1, quaternion const& quaternion2, float amount) Interpola in modo lineare tra due quaternioni.
quaternion concatenate(quaternion const& value1, quaternion const& value2) Concatena due quaternioni; il risultato rappresenta la prima rotazione seguita dalla seconda rotazione.

Metodi

Nome Descrizione
static quaternion identity() Restituisce un'istanza del quaternione identity.

Operatori

Nome Descrizione
quaternion operator+ (quaternion const& value1, quaternion const& value2) Aggiunge due quaternioni.
quaternion operator- (quaternion const& value1, quaternion const& value2) Sottrae un quaternione da un altro quaternione.
quaternion operator* (quaternion const& value1, quaternion const& value2) Moltiplica un quaternione per un altro quaternione.
quaternion operator* (quaternion const& value1, float value2) Moltiplica un quaternione per un valore scalare.
quaternion operator/ (quaternion const& value1, quaternion const& value2) Divide un quaternione da un altro quaternione.
quaternion operator- (quaternion const& value) Capovolge il segno di ogni componente del quaternione.
quaternion& operator+= (quaternion& value1, quaternion const& value2) Sul posto aggiunge due quaternioni.
quaternion& operator-= (quaternion& value1, quaternion const& value2) Sul posto sottrae un quaternione da un altro quaternione.
quaternion& operator*= (quaternion& value1, quaternion const& value2) Sul posto moltiplica un quaternione per un altro quaternione.
quaternion& operator*= (quaternion& value1, float value2) Nultiplies sul posto un quaternione in base a un valore scalare.
quaternion& operator/= (quaternion& value1, quaternion const& value2) Sul posto divide un quaternione da un altro quaternione.
bool operator== (quaternion const& value1, quaternion const& value2) Determina se due istanze di quaternione sono uguali.
bool operator!= (quaternion const& value1, quaternion const& value2) Determina se due istanze di quaternione non sono uguali.
operator Microsoft::?Graphics::?Canvas::?Numerics::?Quaternion() const Converte un quaternion in microsoft.Graphics.Canvas.Numerics.Quaternion.

Campi

Nome Descrizione
float x Valore X del componente vettore del quaternione.
float y Valore Y del componente vettore del quaternione.
float z Valore Z del componente vettore del quaternione.
float w Componente di rotazione del quaternione.

Requisiti

Requisito Valore
Spazio dei nomi Windows::Foundation::Numerics
Intestazione
Windowsnumerics.h

Vedi anche

API windowsnumerics.h