三次样条和三次B样条画线比较例子
% 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; 你好,我想深入的学习一下b样条曲线曲面,能给我指点一下吗,就是程序编写方面的,这方面的书我有,就是程序不太明白 我的qq是513704494 这样画的曲线是不通过控制点的{:{40}:}
页:
[1]