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
内插控制因子。
返回值
返回内插四元数。 如果 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 |