MATLAB---构造Bezier曲线

在这里插入图片描述

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

版权声明:本文为m0_38127487原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。