XMQuaternionSquad 函数 (directxmath.h)

使用球形四元数内插在四个单位四元数之间内插。

语法

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

参数

[in] Q0

第一个单位四元数。

[in] Q1

第二个单位四元数。

[in] Q2

第三个单位四元数。

[in] Q3

第四个单位四元数。

[in] t

内插控制因子。

返回值

返回内插四元数。 如果 Q0Q1Q2Q3 不是所有单位四元数,则返回的四元数未定义。

备注

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

请参阅