Struttura quaternion
Articolo 06/13/2023
4 contributori
Commenti e suggerimenti
In questo articolo
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