# Drawing Bezier Curves in GDI+

In this article I will explain you how to draw a Bezier Curve in GDI+.

This article has been excerpted from book "Graphics Programming with GDI+ ".

The Bezier curve, developed Pierre Bezier in the 1960s for CAD/CAM operations, has become one of the most used curves in drawing. A Bezier curve is defined by four points: two endpoints and two control points. Figure 3.24 shows an example of a Bezier curve in which A and B are the starting and ending points and C and D are two control points.

FIGURE 3.24: A Bezier curve

The Graphics class provides the DrawBezier and DrawBeziers methods for drawing Bezier curves. DrawBezier draws a Bezier curve defined by four points: the starting point, two control points, and the ending point of the curve. The following example draws a Bezier curve with starting point (30,20), ending point (140,50), and control points (80,60) and (120,18).

e.Graphics.DrawBezier (bluePen, 30, 20, 80, 60, 120, 180, 140, 50);

DrawBeziers draws a series of Bezier curves from an array of Point structures. To draw multiple beziers, you need 3x+1 points, where x is the number of Bezier segments.

Listing 3.18 draws Bezier curves using both DrawBezier and DrawBeziers.

LISTING 3.18: Drawing Bezier curves

private
void Form1_Paint (object sender,
System.Windows.Forms.PaintEventArgs e)
{
Graphics g = e.Graphics;

// Create a pen
Pen bluePen = new Pen (Color.Blue, 1);
Pen redPen = new Pen (Color.Red, 1);

// Create points for curve
PointF pt1 = new PointF(40.0F, 50.0F);
PointF pt2 = new PointF(50.0F, 75.0F);
PointF pt3 = new PointF(100.0F, 115.0F);
PointF pt4 = new PointF(200.0F, 180.0F);
PointF pt5 = new PointF(200.0F, 150.0F);

PointF pt6 = new PointF(350.0F, 250.0F);
PointF pt7 = new PointF(200.0F, 200.0F);

PointF[] ptsArray =
{
pt1, pt2, pt3, pt4, pt5, pt6, pt7
};

// Draw Bezier
e.Graphics.DrawBezier
(bluePen, 30, 20, 80, 60, 120, 180, 140, 50);

// Draw Bezier
e.Graphics.DrawBeziers (redPen, ptsArray);

// Dispose of object
bluePen.Dispose();
redPen.Dispose();
}

Figure 3.25 shows the output from Listing 3.18

FIGURE 3.25: Drawing Bezier curves

Conclusion

Hope the article would have helped you in understanding how to draw a Bezier Curve in GDI+. Read other articles on GDI+ on the website.

 This book teaches .NET developers how to work with GDI+ as they develop applications that include graphics, or that interact with monitors or printers. It begins by explaining the difference between GDI and GDI+, and covering the basic concepts of graphics programming in Windows.