XMVectorCatmullRom 函数 (directxmath.h)
使用指定的位置向量执行 Catmull-Rom 内插。
语法
XMVECTOR XM_CALLCONV XMVectorCatmullRom(
[in] FXMVECTOR Position0,
[in] FXMVECTOR Position1,
[in] FXMVECTOR Position2,
[in] GXMVECTOR Position3,
[in] float t
) noexcept;
参数
[in] Position0
第一个位置。
[in] Position1
第二个位置。
[in] Position2
第三个位置。
[in] Position3
第四个位置。
[in] t
内插控制因子。
返回值
返回 Catmull-Rom 内插的结果。
注解
以下伪代码演示函数的操作:
XMVECTOR Result;
float t2 = t * t;
float t3 = t2* t;
float P0 = -t3 + 2.0f * t2 - t;
float P1 = 3.0f * t3 - 5.0f * t2 + 2.0f;
float P2 = -3.0f * t3 + 4.0f * t2 + t;
float P3 = t3 - t2;
Result.x = (P0 * Position0.x + P1 * Position1.x + P2 * Position2.x + P3 * Position3.x) * 0.5f;
Result.y = (P0 * Position0.y + P1 * Position1.y + P2 * Position2.y + P3 * Position3.y) * 0.5f;
Result.z = (P0 * Position0.z + P1 * Position1.z + P2 * Position2.z + P3 * Position3.z) * 0.5f;
Result.w = (P0 * Position0.w + P1 * Position1.w + P2 * Position2.w + P3 * Position3.w) * 0.5f;
return Result;
平台要求
Microsoft Visual Studio 2010 或 Microsoft Visual Studio 2012 以及 Windows SDK for Windows 8。 支持 Win32 桌面应用、Windows 应用商店应用和 Windows Phone 8 应用。要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | directxmath.h (包括 DirectXMath.h) |