绘制贝塞尔样条曲线

贝塞尔样条由四个点定义:一个起点、两个控制点和一个终点。 以下示例绘制了一条 Bézier 样条,起点 (10,100) ,终点 (200,100) 。 控制点 (100、10) 和 (150,150) :

Point p1(10, 100);   // start point
Point c1(100, 10);   // first control point
Point c2(150, 150);  // second control point
Point p2(200, 100);  // end point
Pen pen(Color(255, 0, 0, 255));
graphics.DrawBezier(&pen, p1, c1, c2, p2);

下图显示了生成的贝塞尔样条及其起点、控制点和终点。 该图还显示了自由绘制曲线的凸包,它是一个由直线连接四个点形成的多边形。

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

可以使用 Graphics 类的 DrawBeziers 方法绘制连接的 Bézier 样条序列。 以下示例绘制一条由两条连接的贝塞尔自由绘制曲线组成的曲线。 第一个贝塞尔样条的终点是第二个贝塞尔样条的起点。

Point p[] = {
   Point(10, 100),   // start point of first spline
   Point(75, 10),    // first control point of first spline
   Point(80, 50),    // second control point of first spline
   Point(100, 150),  // end point of first spline and 
                     // start point of second spline
   Point(125, 80),   // first control point of second spline
   Point(175, 200),  // second control point of second spline
   Point(200, 80)};  // end point of second spline
Pen pen(Color(255, 0, 0, 255));
graphics.DrawBeziers(&pen, p, 7);

下图显示了连接的样条以及七个点。

显示两条样条图的终点和控制点(共享一个端点)的插图