这篇文章是作者我基于山东大学杨维强老师在B站的这个视频创作的:
贝塞尔(Bezier)曲线与B样条_哔哩哔哩_bilibili
杨老师在视频中用的ppt的获取链接(下简称ppt):
链接:https://pan.baidu.com/s/1naZH7qu3WqB_Zx_adbRv7g
提取码:tt6p
我根据杨老师的讲解及ppt, 用Matlab中的符号数学工具箱(Symbolic Matlab Toolbox)及fplot函数对b样条方程的基函数方程在t=(0,1)区间内进行代数计算,并且用fplot进行作图。代码在文末。
k+1阶方程的具体表达式存储在Matlab名为B_fun的原胞数组(cell array)内,读者可进行调取。
下面先看代码的Section 1,2:
%% Section 1 定义变量名
n: 节点数
l: 分段数 l = 节点数 n - 1
highest_total: 最高阶数, 注意阶=次+1
%% Section 2 定义了一个B_name 胞数组,展示下哪些基函数是有定义/无定义的
disp(B_name)展示哪些项需要计算,哪些项是未定义的,与ppt 38页中的图表达的意思一致。注意区别在于ppt中的第一个下标i代表的是“次”,而代码中第一个下标代表的是“阶”,阶 = 次+1。作者将在S