Share via


Funzione XMQuaternionSquad (directxmath.h)

Interpola tra quattro quaternioni di unità, usando l'interpolazione quadrale sferica.

Sintassi

XMVECTOR XM_CALLCONV XMQuaternionSquad(
  [in] FXMVECTOR Q0,
  [in] FXMVECTOR Q1,
  [in] FXMVECTOR Q2,
  [in] GXMVECTOR Q3,
  [in] float     t
) noexcept;

Parametri

[in] Q0

Quaternione della prima unità.

[in] Q1

Quaternione di seconda unità.

[in] Q2

Quaternione di terza unità.

[in] Q3

Quaternione quarta unità.

[in] t

Fattore di controllo interpolazione.

Valore restituito

Restituisce il quaternione interpolato. Se Q0, Q1, Q2 e Q3 non sono tutti quaternioni unità, il quaternione restituito non è definito.

Commenti

Le funzioni quaternione DirectXMath usano un vettore XMVECTOR 4 per rappresentare quaternioni, dove i componenti X, Y e Z sono la parte vettoriale e il componente W è la parte scalare.

L'uso di questo metodo richiede alcune impostazioni prima dell'uso. Per informazioni dettagliate, vedere XMQuaternionSquadSetup .

Nell'esempio seguente viene illustrato come usare un set di chiavi quaternione (Q0, Q1, Q2, Q3) per calcolare i punti quadrangle interni (A, B, C). Ciò garantisce che le tangenti siano continue tra segmenti adiacenti.

// Rotation about the z-axis
XMVECTOR Q0 = XMVectorSet(0,  0, 0.707f, -.707f);
XMVECTOR Q1 = XMVectorSet(0,  0, 0.000f, 1.000f);
XMVECTOR Q2 = XMVectorSet(0,  0, 0.707f, 0.707f);
XMVECTOR Q3 = XMVectorSet(0,  0, 1.000f, 0.000f);

XMVECTOR A, B, C;
XMQuaternionSquadSetup(&A, &B, &C, Q0, Q1, Q2, Q3);

XMVECTOR result = XMQuaternionSquad(Q1, A, B, C, 0.5f);
// result is a rotation of 45 degrees around the z-axis

Requisiti della piattaforma

Supportato per le app desktop Win32, le app di Windows Store e Windows Phone 8 app.

Requisiti

   
Piattaforma di destinazione Windows
Intestazione directxmath.h

Vedi anche