目录
3. 分段 Cubic Bézier Curve (Piecewise Cubic Bézier Curve)
1. Bézier Curve
贝塞尔曲线于 1962 年,由法国工程师皮埃尔·贝济埃(Pierre Bézier)所广泛发表,他运用贝塞尔曲线来为汽车的主体进行设计。
贝塞尔曲线主要用于二维图形应用程序中的数学曲线,曲线由起始点,终止点(也称锚点)和控制点组成,通过调整控制点,通过一定方式绘制的贝塞尔曲线形状会发生变化。
贝塞尔曲线根据控制点的数量分为:
- 一阶贝塞尔曲线(2 个控制点)
- 二阶贝塞尔曲线(3 个控制点)
- 三阶贝塞尔曲线(4 个控制点)
- n阶贝塞尔曲线(n+1个控制点)
下图为一个三阶的贝塞尔曲线,包括四个控制点,分别为。
通过上图的三阶贝塞尔曲线举例,基本的步骤如下:
- 四个控制点通过先后顺序进行连接,形成了三条线段,也就是上图中的,然后通过一个参数,其中,该参数的值等于线段上某一个点距离起点的长度除以线段长度。就比如线段上有一个点,此时的值就是,其中位置如下图所示
- 接下来对每一条线段做同样的操作,得到三个控制点,如下图所示。
- 然后对这三个控制点重复第1步操作,得出两个控制点,如下图所示。
- 最后再使用同样的方法可以得到,最终的一个点,如下图所示,此时这个点就是贝塞尔曲线上的一个点。
通过控制的值,由 0 增加至 1,就绘制出了一条由起点至终点的贝塞尔曲线。
2.求贝塞尔曲线上的点坐标
-
一阶贝塞尔曲线
对于一阶贝塞尔曲线,我们可以通过几何知识,很容易根据的值得出线段上那个点的坐标:
即:
- 二阶贝塞尔曲线
对于二阶贝塞尔曲线,其实你可以理解为:在上利用一阶公式求出点,然后在上利用一阶公式求出点,最后在上再利用一阶公式就可以求出最终贝塞尔曲线上的点。具体推导过程如下:
先求出线段上的控制点:
将上面的公式带入至下列公式中:
得:
- 三阶贝塞尔曲线
与二阶贝塞尔曲线类似,可以通过相同的方法得出以下坐标公式:
- 多阶贝塞尔曲线
阶贝塞尔曲线公式:
3. 分段 Cubic Bézier Curve (Piecewise Cubic Bézier Curve)
思路: G2 连续 Piecewise Cubic Bézier Curve 拟合离散点,端点不变,控制曲线形状的点需要重构。
分段三阶贝塞尔曲线可以表示为:
三阶贝塞尔曲线:
上述表示中: 为端点,为控制曲线形状的点(曲线不经过)。
曲线的一阶微分:
分段曲线在边界上一阶连续:
或者 (结论1)
因为分段曲线0阶连续,所以,结论1可以简可以化为
(结论2)
曲线的二阶微分:
分段曲线在边界上二阶连续:
(结论3)
结合结论2和结论3,可以发现所有的索引共计n-1 , 有2(n-1)个方程,但我们有2n个未知数,所以我们需要添加边界条件,以自然边界为例:
--(结论2)--->
(结论4)
将结论2带入结论3得到:
(结论5)
结合结论4和5共计n个方程,n个未知数,求出所有的,接着套用下面公式求出