本文给出了一个在MATLAB下使用的工具函数:funBspline文件,可以按照如下所示方式调用,根据给定的控制点,生成准均匀B样条曲线。使用时将funBspline文件放入matlab当前目录下即可使用。存在一点点小瑕疵,数据与终止点位置之间存在一定的小误差,但不影响使用。
优点:可以控制曲线的阶数,第一个参数是控制点,第二个参数是曲线的阶数;但是要保证控制点数量大于曲线阶数;
clc;
clear;
%% 定义控制点(第一行是x坐标,第二行是y坐标)
% 这里的控制点是随意给的,可调整
P=[0 1.5 2 4 6 8 10 12 14;
1.25 1.25 1.25 2. 3 4 4.25 4.25 4.25];
%% 带入函数计算
outline=funBspline(P,4); % 其中,第一个参数P是前面给定的控制点,第二个参数k是所需生成的样条曲线的阶数,阶数越高曲线越平滑;
%% 绘制原始控制点及生成的准均匀B样条曲线
plot(P(1,:),P(2,:),'*b');
axis equal;
hold on;plot(outline(1,:),outline(2,:),'-r');
函数文件链接:
https://download.youkuaiyun.com/download/flyer15007/87160956