spcrv
等間隔分割によるスプライン曲線
構文
spcrv(c,k)
spcrv(c)
spcrv(c,k,maxpnt)
説明
spcrv(c,k) は、B スプライン係数が c で次数が k の一様な B スプライン曲線 f 上の点の密シーケンス f(tt) を提供します。明らかに、これは次の曲線となります。
B(·|a,...,z) はノット a,...,z をもつ B スプラインで、n は c 内の係数の数です。つまり、[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 を使用した方がより効率的である場合もあります。