XMVectorCatmullRom

指定された位置ベクトルを使用して、Catmull-Rom 補間を行います。

構文

XMVECTOR XMVectorCatmullRom(         XMVECTOR Position0,         XMVECTOR Position1,         XMVECTOR Position2,         XMVECTOR Position3,         FLOAT t)

パラメーター

  • Position0
    [in] 第 1 の位置
  • Position1
    [in] 第 2 の位置
  • Position2
    [in] 第 3 の位置
  • Position3
    [in] 第 4 の位置
  • t
    [in] 補間制御係数

戻り値

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;

要件

ヘッダー: xnamath.h で宣言されています。

関連項目

XMVectorCatmullRomV