次の方法で共有


XMVectorLerp 関数 (directxmath.h)

2 つのベクトル間で線形補間を実行します。

構文

XMVECTOR XM_CALLCONV XMVectorLerp(
  [in] FXMVECTOR V0,
  [in] FXMVECTOR V1,
  [in] float     t
) noexcept;

パラメーター

[in] V0

補間元の最初のベクトル。

[in] V1

補間元の 2 番目のベクトル。

[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;

次のように線形補間ではなく、3 次補間を実行するためにこの関数を使用するのは非常に簡単であることに注意してください。


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 を含む)

こちらもご覧ください

幾何学的ベクトル関数

XMVectorLerpV