Partager via


Fonction XMQuaternionSquad (directxmath.h)

Interpole entre quatre quaternions d’unités, à l’aide de l’interpolation quadrangle sphérique.

Syntaxe

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

Paramètres

[in] Q0

Quaternion de première unité.

[in] Q1

Deuxième quaternion d’unité.

[in] Q2

Troisième quaternion d’unité.

[in] Q3

Quatrième quaternion d’unité.

[in] t

Facteur de contrôle d’interpolation.

Valeur retournée

Retourne le quaternion interpolé. Si Q0, Q1, Q2 et Q3 ne sont pas tous des quaternions d’unités, le quaternion retourné n’est pas défini.

Notes

Les fonctions quaternion DirectXMath utilisent un vecteur XMVECTOR 4 pour représenter les quaternions, où les composants X, Y et Z sont la partie vectorielle et le composant W est la partie scalaire.

L’utilisation de cette méthode nécessite une configuration avant son utilisation. Pour plus d’informations, consultez XMQuaternionSquadSetup .

L’exemple suivant montre comment utiliser un ensemble de clés quaternion (Q0, Q1, Q2, Q3) pour calculer les points quadrangle internes (A, B, C). Cela garantit que les tangentes sont continues sur les segments adjacents.

// 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

Configuration requise pour la plateforme

Pris en charge pour les applications de bureau Win32, les applications du Windows Store et les applications Windows Phone 8.

Spécifications

   
Plateforme cible Windows
En-tête directxmath.h

Voir aussi