スプライン
スプラインカーブエンティティは、一連の 3 次元点、各点の接線ベクトル、および各点の非正規化スプラインパラメータの配列によって定義される不均等な円形スプラインです。
データフォーマット:
par_arr[] Array of spline parameters
(t) at each point.
pnt_arr[][3] Array of spline interpolant points
tan_arr[][3] Array of tangent vectors at
each point
パラメータ表示:
x、y、および z は、始点、終点、および各セグメントの接線によって完全に決定される、セグメントごとに 1 つの、一連の固有の 3 次関数です。
p_min を最初のスプライン点のパラメータに設定し、p_max を最後のスプライン点のパラメータに設定します。これにより、非正規化パラメータ t' は t * p_max + (1-t) * p_min となります。
次のように i 番目のスプラインセグメントを配置します。
par_arr[i] < t' < par_arr[i+1]
t < 0 または t > +1 の場合、最初または最後のセグメントを使用します。
t0 = (t' - par_arr[i]) / (par_arr[i+1] - par_arr[i])
t1 = (par_arr[i+1] - t') / (par_arr[i+1] - par_arr[i])
The coordinates of the points are then:
(x, y, z) = pnt_arr[i] * t1^2 * (1 + 2 * t0) +
pnt_arr[i+1] * t0^2 * (1 + 2 * t1) +
(par_arr[i+1] - par_arr[i]) * t0 * t1 *
(tan_arr[i] * t1 - tan_arr[i+1] * t0)