GraphicsPath::AddArc Method (Rectangle, Single, Single)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Appends an elliptical arc to the current figure.

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

void AddArc(
	Rectangle rect,
	float startAngle,
	float sweepAngle


Type: System.Drawing::Rectangle

A Rectangle that represents the rectangular bounds of the ellipse from which the arc is taken.

Type: System::Single

The starting angle of the arc, measured in degrees clockwise from the x-axis.

Type: System::Single

The angle between startAngle and the end of the arc.

If there are previous lines or curves in the figure, a line is added to connect the endpoint of the previous segment to the beginning of the arc.

The arc is traced along the perimeter of the ellipse bounded by the specified rectangle. The starting point of the arc is determined by measuring clockwise from the x-axis of the ellipse (at the 0-degree angle) by the number of degrees in the start angle. The endpoint is similarly located by measuring clockwise from the starting point by the number of degrees in the sweep angle. If the sweep angle is greater than 360 degrees or less than -360 degrees, the arc is swept by exactly 360 degrees or -360 degrees, respectively.

The following code example is designed for use with Windows Forms, and it requires PaintEventArgse, an OnPaint event object. The code performs the following actions:

  • Creates a rectangle, from which the arc is defined.

  • Creates a path, myPath.

  • Defines a 180-degree elliptical arc that sweeps from 0 degrees to 180 degrees and appends it to a path.

  • Draws the path to screen.

   void AddArcExample( PaintEventArgs^ e )
      // Create a GraphicsPath object.
      GraphicsPath^ myPath = gcnew GraphicsPath;

      // Set up and call AddArc, and close the figure.
      Rectangle rect = Rectangle(20,20,50,100);
      myPath->AddArc( rect, 0, 180 );

      // Draw the path to screen.
      e->Graphics->DrawPath( gcnew Pen( Color::Red,3.0f ), myPath );

.NET Framework
Available since 1.1
Return to top