贝塞尔曲线

一阶贝塞尔(直线)
一阶贝赛尔曲线上的由两个点确定 P0 和P1,当t在0--->1区间上递增时,根据
此会得到多个点的坐标,其实这些的点就是一条直线上的点。

B(t) = P0 + (P1-P0)*t
B(t) = (1-t)P0 + tP1
//=>
B(t).x = (1-t)P0.x + tP1.x
B(t).y = (1-t)P0.y + tP1.y

### 二阶贝塞尔(曲线)
二阶贝赛尔曲线由`3`个点确定,它可以理解成是这样的一阶贝赛尔曲线:确定该`一阶贝赛尔曲线`的两个点是变化的(图中绿色的线)。

这两个点(设分别为Pm,Pn)是怎样变化的呢,这两个点又分别是(P0,P1)确定的`一阶贝赛尔曲线`和(P1,P2)确定的`一阶贝赛尔`
曲线上的点。

Pm在(P0,P1)上,Pn在(P1,P2)上,此时一个t值将同时影响Pm和Pn两个点的位置,保证t =P0Pm/P0P1=P1Pn/P1P2。

PmPn形成的一阶贝塞尔曲线随t变化的点形成二阶贝塞尔曲线的轨迹。

enter image description here
于是有了2阶贝赛尔曲线的公式

Pm(t) = (1-t)P0 + tP1
Pn(t) = (1-t)P1 + tP2
B(t) = (1-t)Pm(t) + tPn(t) 
= (1-t)^2 P0 + 2(1-t)tP1+ t^2P2

### 三阶贝塞尔曲线

三阶贝塞尔曲线由`4`个点确定,它可以理解成这样的二阶贝塞尔曲线:确定该二阶贝赛尔曲线的三个点是变化的(图中绿色的线)。
这三个点(Px,Py,Pz)是怎样变化的呢,这三个点分别是P0+P1/P1+P2/P2+P3的确定的一阶贝塞尔曲线上的点。

Px在(P0,P1)上,Py在(P1,P2)上,Pz在(P2,P3)上,此时一个t值将同时影响Px、Py和Pz三个点的位置,保证t = P0Px/P0P1 = P1Py/P1P2 = P2Pz/P2P3。

接下来由Px,Py,Pz决定的二阶贝塞尔曲线又决定了一条一阶贝塞尔曲线(图中的蓝色线,Pm在PxPy上,Pn在PyPz上,Pm和Pn随着t的变化而变化),最终这条一阶贝塞尔曲线上随t变化的点形成三阶贝塞尔曲线的轨迹。

 

### N阶贝塞尔曲线

根据以上一阶、二阶、三阶贝塞尔曲线的规律,可以发现:

一阶贝塞尔曲线是2点确定一个点

二阶贝塞尔曲线是3点确定2个点,2个点再一个点

三阶贝塞尔曲线4点确定3个点,3个点确定2个点,2个点再确定一个点

所以,N阶贝塞尔曲线就是N+1点确定N点,N点确定N-1个点,...,2个点确定一个点

下图是一个五阶贝塞尔曲线的示意图:

 

 

 

enter image description here

参考文章:

贝塞尔曲线扫盲 

Conan在知乎上的关于贝塞尔曲线的高赞回答

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值