# GraphicsPath.AddArc Method

## Definition

Appends an elliptical arc to the current figure.

## Overloads

AddArc(Rectangle, Single, Single) |
Appends an elliptical arc to the current figure. |

AddArc(RectangleF, Single, Single) |
Appends an elliptical arc to the current figure. |

AddArc(Int32, Int32, Int32, Int32, Single, Single) |
Appends an elliptical arc to the current figure. |

AddArc(Single, Single, Single, Single, Single, Single) |
Appends an elliptical arc to the current figure. |

## AddArc(Rectangle, Single, Single)

Appends an elliptical arc to the current figure.

```
public:
void AddArc(System::Drawing::Rectangle rect, float startAngle, float sweepAngle);
```

`public void AddArc (System.Drawing.Rectangle rect, float startAngle, float sweepAngle);`

`member this.AddArc : System.Drawing.Rectangle * single * single -> unit`

`Public Sub AddArc (rect As Rectangle, startAngle As Single, sweepAngle As Single)`

#### Parameters

- rect
- Rectangle

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

- startAngle
- Single

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

- sweepAngle
- Single

The angle between `startAngle`

and the end of the arc.

### Examples

The following code example is designed for use with Windows Forms, and it requires PaintEventArgs`e`

, 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.

```
private:
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->StartFigure();
myPath->AddArc( rect, 0, 180 );
myPath->CloseFigure();
// Draw the path to screen.
e->Graphics->DrawPath( gcnew Pen( Color::Red,3.0f ), myPath );
}
```

```
private void AddArcExample(PaintEventArgs e)
{
// Create a GraphicsPath object.
GraphicsPath myPath = new GraphicsPath();
// Set up and call AddArc, and close the figure.
Rectangle rect = new Rectangle(20, 20, 50, 100);
myPath.StartFigure();
myPath.AddArc(rect, 0, 180);
myPath.CloseFigure();
// Draw the path to screen.
e.Graphics.DrawPath(new Pen(Color.Red, 3), myPath);
}
```

```
Public Sub AddArcExample(ByVal e As PaintEventArgs)
' Create a GraphicsPath object.
Dim myPath As New GraphicsPath
' Set up and call AddArc, and close the figure.
Dim rect As New Rectangle(20, 20, 50, 100)
myPath.StartFigure()
myPath.AddArc(rect, 0, 180)
myPath.CloseFigure()
' Draw the path to screen.
e.Graphics.DrawPath(New Pen(Color.Red, 3), myPath)
End Sub
```

### Remarks

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.

## AddArc(RectangleF, Single, Single)

Appends an elliptical arc to the current figure.

```
public:
void AddArc(System::Drawing::RectangleF rect, float startAngle, float sweepAngle);
```

`public void AddArc (System.Drawing.RectangleF rect, float startAngle, float sweepAngle);`

`member this.AddArc : System.Drawing.RectangleF * single * single -> unit`

`Public Sub AddArc (rect As RectangleF, startAngle As Single, sweepAngle As Single)`

#### Parameters

- rect
- RectangleF

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

- startAngle
- Single

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

- sweepAngle
- Single

The angle between `startAngle`

and the end of the arc.

### Examples

For an example, see AddArc(Rectangle, Single, Single).

### Remarks

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.

## AddArc(Int32, Int32, Int32, Int32, Single, Single)

Appends an elliptical arc to the current figure.

```
public:
void AddArc(int x, int y, int width, int height, float startAngle, float sweepAngle);
```

`public void AddArc (int x, int y, int width, int height, float startAngle, float sweepAngle);`

`member this.AddArc : int * int * int * int * single * single -> unit`

`Public Sub AddArc (x As Integer, y As Integer, width As Integer, height As Integer, startAngle As Single, sweepAngle As Single)`

#### Parameters

- x
- Int32

The x-coordinate of the upper-left corner of the rectangular region that defines the ellipse from which the arc is drawn.

- y
- Int32

The y-coordinate of the upper-left corner of the rectangular region that defines the ellipse from which the arc is drawn.

- width
- Int32

The width of the rectangular region that defines the ellipse from which the arc is drawn.

- height
- Int32

The height of the rectangular region that defines the ellipse from which the arc is drawn.

- startAngle
- Single

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

- sweepAngle
- Single

The angle between `startAngle`

and the end of the arc.

### Examples

For an example, see AddArc(Rectangle, Single, Single).

### Remarks

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.

## AddArc(Single, Single, Single, Single, Single, Single)

Appends an elliptical arc to the current figure.

```
public:
void AddArc(float x, float y, float width, float height, float startAngle, float sweepAngle);
```

`public void AddArc (float x, float y, float width, float height, float startAngle, float sweepAngle);`

`member this.AddArc : single * single * single * single * single * single -> unit`

`Public Sub AddArc (x As Single, y As Single, width As Single, height As Single, startAngle As Single, sweepAngle As Single)`

#### Parameters

- x
- Single

The x-coordinate of the upper-left corner of the rectangular region that defines the ellipse from which the arc is drawn.

- y
- Single

The y-coordinate of the upper-left corner of the rectangular region that defines the ellipse from which the arc is drawn.

- width
- Single

The width of the rectangular region that defines the ellipse from which the arc is drawn.

- height
- Single

The height of the rectangular region that defines the ellipse from which the arc is drawn.

- startAngle
- Single

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

- sweepAngle
- Single

The angle between `startAngle`

and the end of the arc.

### Examples

For an example, see AddArc(Rectangle, Single, Single).