MATLAB---构造Bezier曲线

286 篇文章 33 订阅
236 篇文章 15 订阅

在这里插入图片描述

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
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值