matlab编写Bézier曲线

 可运行的Bézier曲线matlab程序,附详细解释

%%Bézier曲线
%n阶Bézier曲线
%参数:控制点、比例参数

clc
clear
close all

p = [10,5;25,10;30,20;25,30;15,35;5,25]; %控制点,p0、p1、……、pN
n = length(p)-1; %阶数,控制点个数-1
x = p(:,1); %控制点x轴坐标
y = p(:,2); %控制点y轴坐标

figure %绘制Bézier曲线图
plot(x,y,'-r')
grid on
axis equal
axis tight
title('Bézier曲线图')
xlabel('X')
ylabel('Y')
hold on

Bt_x1 = (0); %某比例参数、控制点,x轴Bézier多项式单项式值,初始化
Bt_y1 = (0); %某比例参数、控制点,y轴Bézier多项式单项式值,初始化
Bt_x = (0); %某比例参数,x轴Bézier多项式值表,初始化
Bt_y = (0); %某比例参数,y轴Bézier多项式值表,初始化

t = 0.01; %比例间隔
for q = 0:t:1 %比例参数
    for i = 0:n %控制点个数
           Bt_x1(i+1) = factorial(n)/factorial(i)/factorial(n-i)*(1-q)^(n-i)*q^i*p(i+1,1); %当前比例参数、控制点,x轴Bézier多项式单项式值
           Bt_y1(i+1) = factorial(n)/factorial(i)/factorial(n-i)*(1-q)^(n-i)*q^i*p(i+1,2); %当前比例参数、控制点,y轴Bézier多项式单项式值
    end
    m = round(q/t+1); %当前比例参数,Bézier多项式值个数
    Bt_x(m,1) = sum(Bt_x1); %当前比例参数,x轴Bézier多项式值,即x轴Bézier多项式单项式值总和,记录在x轴Bézier多项式值表中
    Bt_y(m,1) = sum(Bt_y1); %当前比例参数,y轴Bézier多项式值,即y轴Bézier多项式单项式值总和,记录在y轴Bézier多项式值表中
    plot(Bt_x(:,1),Bt_y(:,1),'og')
    hold on
end
plot(Bt_x(:,1),Bt_y(:,1),'-b')
hold on

运行结果

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
zier曲线是一种数学曲线,由法国数学家Pierre Bézier在20世纪60年代提出。它通过控制点和控制向量来定义曲线的形状。Bézier曲线的画线原理如下: 1. 控制点:Bézier曲线由两个或多个控制点组成。对于二次Bézier曲线,有三个控制点,分别称为起点、控制点和终点。对于三次zier曲线,有四个控制点,分别称为起点、两个控制点和终点。 2. 连接直线:Bézier曲线的起点和终点之间可以通过直线段连接。这些直线段被称为端点切线。如果起点和终点之间存在多个控制点,则通过这些控制点来调整曲线的形状。 3. 控制向量:每个控制点都有一个关联的控制向量。控制向量定义了曲线在该控制点处的切线方向和长度。调整控制向量的长度和方向可以改变曲线在该位置的弯曲程度和形状。 4. 插值计算:根据Bézier曲线的插值计算公式,通过控制点和控制向量的组合,可以计算出曲线上的每个点的坐标。这些计算基于参数t(取值范围为0到1),通过在控制点之间进行插值计算来确定曲线上的点。 5. 平滑性:Bézier曲线的平滑性由控制点和控制向量的位置关系决定。当控制向量与端点切线相切时,曲线在该位置处是平滑的。通过调整控制向量的位置,可以获得不同程度的平滑性。 总结来说,Bézier曲线通过控制点和控制向量来定义曲线的形状,并使用插值计算来确定曲线上的点。调整控制点和控制向量的位置和长度可以改变曲线的形状和平滑性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值