贝塞尔样条

Bézier 样条是由四个点指定的曲线:两个终点 (p1 和 p2) ,两个控制点 (c1 和 c2) 。 曲线从 p1 开始,以 p2 结尾。 曲线不会通过控制点,但控制点充当磁体,将曲线拉向某些方向并影响曲线弯曲的方式。 下图显示了 Bézier 曲线及其终结点和控制点。

illustration showing a bezier spline with two end points and two control points

请注意,曲线从 p1 开始,并移动到控制点 c1。 p1 处曲线的正切线是从 p1 绘制到 c1 的直线。 另请注意,终结点 p2 处的正切线是从 c2 绘制到 p2 的线条。

若要绘制 Bézier 样条,需要 图形 对象和 Pen 对象。 Graphics 对象提供 DrawBezier 方法,Pen 对象存储曲线的属性,如线条宽度和颜色。 Pen 对象的地址作为参数之一传递给 DrawBezier 方法。 传递给 DrawBezier 方法的其余参数是终结点和控制点。 以下示例绘制一个 Bézier 样条,起始点 (0,0) ,控制点 (40,20) , (80,150) ,结束点 (100,10) 。

myGraphics.DrawBezier(&myPen, 0, 0, 40, 20, 80, 150, 100, 10);

下图显示了曲线、控制点和两条正切线。

illustration showing a bezier spline with two end points, two control points, and two tangent lines

贝塞尔样条最初由皮埃尔·贝塞尔开发,用于在汽车工业中设计。 此后,它们已证明在许多类型的计算机辅助设计中非常有用,还用于定义字体轮廓。 Bézier 样条可以产生各种各样的形状,其中一些形状如下图所示。

illustration showing three bezier splines