Main Content

spcrv

等間隔分割によるスプライン曲線

構文

spcrv(c,k)
spcrv(c)
spcrv(c,k,maxpnt)

説明

spcrv(c,k) は、B スプライン係数が c で次数が k の一様な B スプライン曲線 f 上の点の密シーケンス f(tt) を提供します。明らかに、これは次の曲線となります。

f:t|j=1nB(tk/2|j,...,j+k) c(j), k2tn+k2

B(·|a,...,z) は節点 a,...,z をもつ B スプラインで、nc 内の係数の数です。つまり、[d,n]size(c) に等しくなります。

spcrv(c) は、次数 k として 4 を選択します。

spcrv(c,k,maxpnt) は、少なくとも maxpnt 個の点が確実に生成されるようにします。生成されるサイト tt の最大数の既定値は 100 です。

サイト シーケンス tt が一様に満たすパラメーターの区間は、区間 [k/2 .. (n-k/2)] です。

出力は、配列 f(tt) で構成されます。

以下は、問題のある破線とその平滑化されたバージョンを示しています。

points = [0 0 1 1 0 -1 -1 0 0 ;
        0 0 0 1 2 1 0 -1 -2]; 
plot(points(1,:),points(2,:),':') 
values = spcrv(points,3); 
hold on, plot(values(1,:),values(2,:)), hold off

アルゴリズム

少なくとも maxpnt サイトになるまで、中間点での節点挿入が繰り返し使用されます。fnplt を使用した方がより効率的である場合もあります。

参考