|
楼主 |
发表于 2009-5-7 15:11
|
显示全部楼层
回复 沙发 ChaChing 的帖子
代码没有错,只是在两幅图上显示不一样, 我想上传附件图,找不到上传的地方,
我把程序给你看看吧, 你用这个程序函数自己画 的图,对比 和用Plot(bt(25:1025),'.')两个不一样,希望指点一下,现在正急用。。。。
function [at bt]=Bspline3(x,y)
% Function to draw the cubic B-spline
% x:控制点横坐标矢量
% y:控制点纵坐标矢量
%x=[50 90 150 120 220 300 380 320 450 500];
%y=[100 60 50 150 240 100 100 200 250 130];
plot(x,y,'bh');hold on;
plot(x,y);hold on;
n=length(x);
%m=60;
dt=1/(2.5*n); num=1;
for l=1:(n-3)
a0=(x(l)+4*x(1+l)+x(2+l))/6;
a1=(x(l+2)-x(l))/2; a2=(x(l)-2*x(1+l)+x(2+l))/2;
a3=-(x(l)-3*x(1+l)+3*x(2+l)-x(l+3))/6;
b0=(y(l)+4*y(1+l)+y(2+l))/6;
b1=(y(l+2)-y(l))/2; b2=(y(l)-2*y(1+l)+y(2+l))/2;
b3=-(y(l)-3*y(1+l)+3*y(2+l)-y(l+3))/6;
for i=0:1:2.5*n
t=i*dt;
xx(num)=a0+a1*t+a2*t^2+a3*t^3;
yy(num)=b0+b1*t+b2*t^2+b3*t^3;
num=num+1;
end
end
bt=yy; at=xx; plot(xx,yy,'r');
[ 本帖最后由 ChaChing 于 2009-5-7 20:05 编辑 ] |
|