Freigeben über


XMQuaternionSquad-Funktion (directxmath.h)

Interpoliert zwischen vier Einheitenquaternionen, wobei sphärische Viereckinterpolation verwendet wird.

Syntax

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

Parameter

[in] Q0

Erste Quaternion der Einheit.

[in] Q1

Zweite Quaternion der Einheit.

[in] Q2

Quaternion der dritten Einheit.

[in] Q3

Quaternion der vierten Einheit.

[in] t

Interpolationskontrollfaktor.

Rückgabewert

Gibt die interpolierte Quaternion zurück. Wenn Q0, Q1, Q2 und Q3 nicht alle Einheitenquaternionen sind, ist die zurückgegebene Quaternion undefiniert.

Hinweise

Die DirectXMath-Quaternionsfunktionen verwenden einen XMVECTOR 4-Vektor, um Quaternionen darzustellen, wobei die X-, Y- und Z-Komponenten der Vektorteil und die W-Komponente der Skalarteil ist.

Die Verwendung dieser Methode erfordert vor ihrer Verwendung einige Setups. Weitere Informationen finden Sie unter XMQuaternionSquadSetup .

Das folgende Beispiel zeigt, wie sie einen Satz von Quaternionsschlüsseln (Q0, Q1, Q2, Q3) verwenden, um die inneren Viereckpunkte (A, B, C) zu berechnen. Dadurch wird sichergestellt, dass die Tangenten über benachbarte Segmente hinweg kontinuierlich sind.

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

Plattformanforderungen

Unterstützt für Win32-Desktop-Apps, Windows Store-Apps und Windows Phone 8-Apps.

Anforderungen

   
Zielplattform Windows
Kopfzeile directxmath.h

Weitere Informationen