GDI+ 中的贝塞尔自由绘制曲线

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

Screenshot of a Bézier spline, which shows its endpoints and control points.

曲线从 p1 开始,并朝着控制点 c1 的方向移动。 曲线在 p1 处的切线是从 p1 到 c1 绘制的直线。 在端点 p2 处的切线是从 c2 到 p2 绘制的直线。

绘制贝塞尔自由绘制曲线

若要绘制贝塞尔自由绘制曲线,需要 Graphics 类的实例和 PenGraphics 类的实例提供 DrawBezier 方法,而 Pen 存储用于呈现曲线的线条的属性,例如宽度和颜色。 Pen 作为参数之一传递给 DrawBezier 方法。 传递给 DrawBezier 方法的其余参数是端点和控制点。 以下示例绘制了一条贝塞尔自由绘制曲线,起点是 (0, 0),控制点是 (40, 20) 和 (80, 150),终点是 (100, 10):

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

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

Screenshot of the Bézier spline, which shows the curve, the control points, and two tangent lines.

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

Paths

另请参阅