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
補間制御係数。
戻り値
補間された四元数を返します。 Q0、Q1、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 |