MatlabB样条曲线生成程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MatlabB样条曲线生成程序

a=[4 3 2 3 6 5 10 8 6 4;6 5 4 2 1 8 6 1 0 -1];%增加两个控制顶点(4 6)(4 -1)从而使曲线通过原来的首末点;

plot(a(1,:),a(2,:),':'); % 绘制控制多边形;

hold on; % 默认为hold off,此命令用来保留控制多边形的图形;

for i=1:38; % 由于4个顶点可以确定一条B样条,共有8个控制顶点,可确定5条B样条曲线;

%for i=1:7;

for u=0:0.001:1; % 参数u;

b0=1.0./6.*(1-u).^3; % 基函数b0;

b1=1.0./6.*(3.*u.^3-6.*u.^2+4); % 基函数b1;

b2=1.0./6.*(-3.*u.^3+3.*u.^2+3.*u+1); % 基函数b2;

b3=1.0./6.*u.^3; % 基函数b3;

x=b0.*a(1,i)+b1.*a(1,i+1)+b2.*a(1,i+2)+b3.*a(1,i+3); % 确定曲线的横坐标x;

y=b0.*a(2,i)+b1.*a(2,i+1)+b2.*a(2,i+2)+b3.*a(2,i+3); % 确定曲线的纵坐标y;

line(x,y); % 绘制曲线坐标点;

end

end

hold off;

a=[10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90;20 16 26 26 26 26 24 24 24 22 22 16 28 26 26 26 24]; % 控制顶点数组;

plot(a(1,:),a(2,:),':'); % 绘制控制多边形;

hold on; % 默认为hold off,此命令用来保留控制多边形的图形;

for i=1:38; % 由于4个顶点可以确定一条B样条,共有8个控制顶点,可确定5条B样条曲线;

%for i=1:7;

for u=0:0.001:1; % 参数u;

b0=1.0./6.*(1-u).^3; % 基函数b0;

b1=1.0./6.*(3.*u.^3-6.*u.^2+4); % 基函数b1;

b2=1.0./6.*(-3.*u.^3+3.*u.^2+3.*u+1); % 基函数b2;

b3=1.0./6.*u.^3; % 基函数b3;

x=b0.*a(1,i)+b1.*a(1,i+1)+b2.*a(1,i+2)+b3.*a(1,i+3); % 确定曲线的横坐标x;

y=b0.*a(2,i)+b1.*a(2,i+1)+b2.*a(2,i+2)+b3.*a(2,i+3); % 确定曲线的纵坐标y;

line(x,y); % 绘制曲线坐标点;end

end

hold off;

相关文档
最新文档