XMQuaternionSquad 関数 (directxmath.h)

球面四角形補間を使用して、4 つの単位四元数の間を補間します。

構文

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

パラメーター

[in] Q0

最初の単位の四元数。

[in] Q1

2 番目の単位の四元数。

[in] Q2

3 番目の単位の四元数。

[in] Q3

4 番目の単位の四元数。

[in] t

補間制御係数。

戻り値

補間された四元数を返します。 Q0Q1、Q2および Q3 がすべて単位四元数ではない場合、返される四元数は未定義です。

解説

DirectXMath 四元数関数では、XMVECTOR 4 ベクトルを使用して四元数を表します。ここで、X、Y、Z の各コンポーネントはベクトル部分、W コンポーネントはスカラー部分です。

このメソッドを使用するには、使用する前に何らかのセットアップが必要です。 詳細については、「 XMQuaternionSquadSetup 」を参照してください。

次の例では、四元数キーのセット (Q0、Q1、Q2、Q3) を使用して、内部四角形のポイント (A、B、C) を計算する方法を示します。 これにより、接線が隣接するセグメント間で連続します。

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

プラットフォームの要件

Win32 デスクトップ アプリ、Windows ストア アプリ、Windows Phone 8 アプリでサポートされます。

要件

   
対象プラットフォーム Windows
ヘッダー directxmath.h

関連項目