一阶贝塞尔(直线)
一阶贝赛尔曲线上的由两个点确定 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变化的点形成二阶贝塞尔曲线的轨迹。
于是有了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个点确定一个点
下图是一个五阶贝塞尔曲线的示意图:
参考文章: