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 会更高效。