贝塞尔样条

贝塞尔自由绘制曲线是一条由四个点指定的曲线:两个端点(p1 和 p2)和两个控制点(c1 和 c2)。 曲线从 p1 开始,以 p2 结尾。 曲线不会通过控制点,但控制点充当磁体,将曲线拉向特定方向并影响曲线的弯曲方式。 下图显示了贝塞尔自由绘制曲线及其端点和控制点。

显示具有两个端点和两个控制点的贝塞尔样条的插图

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

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

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

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

显示具有两个端点、两个控制点和两条正切线的贝塞尔样条的插图

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

显示三条贝塞尔样条的插图