|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
% spline 计算
%l= 20;
x = 0:10;
%x = rand(1,l);
y = sin(x);
xx = 0:.25:10;
yy = spline(x,y,xx);
% B-spline 计算
a(1,:) = x;
a(2,:) = y;
%plot(a(1,:),a(2,:),':'); % 绘制控制多边形;
plot(x,y,':',xx,yy)
hold on; % 默认为hold off,此命令用来保留控制多边形的图形;
len = size(a,2);
k = 1;
for i=1:len-3; % 由于4个顶点可以确定一条B样条,共有8个控制顶点,可确定5条B样条曲线;
for u=0:0.01: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); % 绘制曲线坐标点;
m(1,k) = x;
m(2,k) = y;
k = k + 1;
end
end
hold off; |
|