DrawBeziers Method (Pen, Point[])
Collapse the table of content
Expand the table of content

Graphics::DrawBeziers Method (Pen^, array<Point>^)

 

Draws a series of Bézier splines from an array of Point structures.

Namespace:   System.Drawing
Assembly:  System.Drawing (in System.Drawing.dll)

public:
void DrawBeziers(
	Pen^ pen,
	array<Point>^ points
)

Parameters

pen
Type: System.Drawing::Pen^

Pen that determines the color, width, and style of the curve.

points
Type: array<System.Drawing::Point>^

Array of Point structures that represent the points that determine the curve. The number of points in the array should be a multiple of 3 plus 1, such as 4, 7, or 10.

Exception Condition
ArgumentNullException

pen is null.

-or-

points is null.

The number of points in the array should be a multiple of 3 plus 1 because the first spline requires 4 points and any other splines require 3 points each. The first Bézier spline is drawn from the first point to the fourth point in the point array. The second and third points are control points that determine the shape of the curve. Each subsequent curve needs exactly three more points: two more control points and an ending point. The ending point of the previous curve is used as the starting point for each additional curve.

The following code example is designed for use with Windows Forms, and it requires PaintEventArgse, which is a parameter of the Paint event handler. The code performs the following actions:

  • Creates a black pen.

  • Creates the start, end, and two control points for a first curve and endpoint and two control points for a second curve.

  • Draws the successive Bézier curves to the screen.

private:
   void DrawBeziersPoint( PaintEventArgs^ e )
   {
      // Create pen.
      Pen^ blackPen = gcnew Pen( Color::Black,3.0f );

      // Create points for curve.
      Point start = Point(100,100);
      Point control1 = Point(200,10);
      Point control2 = Point(350,50);
      Point end1 = Point(500,100);
      Point control3 = Point(600,150);
      Point control4 = Point(650,250);
      Point end2 = Point(500,300);
      array<Point>^ bezierPoints = {start,control1,control2,end1,control3,control4,end2};

      // Draw arc to screen.
      e->Graphics->DrawBeziers( blackPen, bezierPoints );
   }

.NET Framework
Available since 1.1
Return to top
Show:
© 2016 Microsoft