function Bezier()
%交互式在屏幕上选取点
%以这些点为控制顶点构造Bezier曲线
figure%开辟一个图形窗口以便绘图
axis([0 9.8 0 9.8]) %在图形窗口中创建二维轴
%形成输入向量的4个数分别是x的取值范围和y的取值范围
but=1;%在这里but就是button的缩写,1,2,3分别表示鼠标的左中右键
n=0;
hold on
while but==1%按鼠标得中键和右键结束点的拾取
n=n+1;
[xi,yi,but]=ginput(1);%交互在屏幕上的坐标范围内拾取点,一次拾取一个点
%该函数输出拾取点的坐标和使用的鼠标键
%在这里but就是button的缩写,1,2,3分别表示鼠标的左中右键
x(n)=xi;
y(n)=yi;
plot(xi,yi,'k.','Markersize',20) % 画出所捕捉的点
plot(x,y,'r:','linewidth',2) % 画出控制多边形,用红色虚线表示
end
%拾取到的点用于构造控制多边形
n=n-1;
for i=1:100%采集100个密化点
u=(i-1)/99;%第i个点对应的计算参数
BB=Berbstein(n,u);%计算参数u下一组伯恩斯坦基函数的值
xx(i)=x*BB';%控制顶点的x坐标和基函数进行线性组合得到参数u对应的点的横坐标
%这是第i个密化点的横坐标,保存在数组的第i个位置
yy(i)=y*BB';%控制顶点的y坐标和基函数进行线性组合
end
%xx,yy分别表示密化点的横坐标和纵坐标形成的数组
%Bezier曲线上的密化点逐点连接,在视觉上形成Bezier曲线
plot(xx,yy,'b','linewidth',2)
hold off
MATLAB---构造Bezier曲线
于 2022-04-19 08:13:36 首次发布