均等な間隔の値のキーを使ってカーブを指定するには、csplineを使用します。
float ckspline(float t, float value, float pos, ...)
vector ckspline(float t, vector value, float pos, ...)
vector4 ckspline(float t, vector4 value, float pos, ...)
t
サンプリングするスプライン沿いの位置。
value
, pos
, ...
サンプリングするカーブを定義したキー値と位置の一連のペア。
Returns
カーブ沿いのt
位置における補間された値。
指定したキーポイント間でCatmull-Rom(Cardinal)スプラインを計算します。 それらの値が指定したキーに基づいて一定の間隔をあけます。補間(t)の領域は、指定した2番目と最後から2番目のキー値の間 にあるはずです。 キーは昇順で指定しないと、予期しない結果を招きます。
カーディナルスプラインの性質上、最初と最後のキーに関連する値は返されません。しかし、これらのキーはカーブの始点と終点を決めるために使われます。
Examples ¶
カーブ沿いのt
位置における値を調べる
Cf = ckspline(t, {1,1,1}, -0.25, // 1番目のキー {.5,.5,.5}, 0.0, // 2番目のキー {.5, 0,.5}, 0.25, // 3番目のキー {0,0,.8}, 1.0, // 4番目のキー {0,0,0}, 1.25 // 5番目のキー );
上記のキーで定義したCatmull-Romスプラインは、0から1の範囲の補間で有効です。 最初と最後のキーは、2番目と最後から2番目のキーでのカーブの傾斜を決めるためだけに使われます。
See also | |
interp | |
spline |