XMVectorLerp 函数 (directxmath.h)
在两个向量之间执行线性内插。
语法
XMVECTOR XM_CALLCONV XMVectorLerp(
[in] FXMVECTOR V0,
[in] FXMVECTOR V1,
[in] float t
) noexcept;
参数
[in] V0
要从中插入的第一个向量。
[in] V1
要从中插入的第二个向量。
[in] t
内插控制因子。
返回值
返回包含内插的向量。
注解
以下伪代码演示函数的操作:
XMVECTOR Result;
Result.x = V0.x + t * (V1.x - V0.x);
Result.y = V0.y + t * (V1.y - V0.y);
Result.z = V0.z + t * (V1.z - V0.z);
Result.w = V0.w + t * (V1.w - V0.w);
return Result;
请注意,使用此函数执行三次内插而不是线性内插相当简单,如下所示:
XMVECTOR SmoothStep( XMVECTOR V0, XMVECTOR V1, float t )
{
t = (t > 1.0f) ? 1.0f : ((t < 0.0f) ? 0.0f : t); // Clamp value to 0 to 1
t = t*t*(3.f - 2.f*t);
return XMVectorLerp( V0, V1, t );
}
平台要求
Microsoft Visual Studio 2010 或 Microsoft Visual Studio 2012 以及 Windows SDK for Windows 8。 支持 Win32 桌面应用、Windows 应用商店应用和 Windows Phone 8 应用。要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | directxmath.h (包括 DirectXMath.h) |