Function

Adds an arc of a circle to the current path, using a radius and tangent points.

## Parameters

`c`

A graphics context whose current path is not empty.

`x1`

The x-value, in user space coordinates, for the end point of the first tangent line. The first tangent line is drawn from the current point to (x1,y1).

`y1`

The y-value, in user space coordinates, for the end point of the first tangent line. The first tangent line is drawn from the current point to (x1,y1).

`x2`

The x-value, in user space coordinates, for the end point of the second tangent line. The second tangent line is drawn from (x1,y1) to (x2,y2).

`y2`

The y-value, in user space coordinates, for the end point of the second tangent line. The second tangent line is drawn from (x1,y1) to (x2,y2).

`radius`

The radius of the arc, in user space coordinates.

## Discussion

This method calculates two tangent lines—the first from the current point to the point `(x1, y1)`, and the second from the point `(x1, y1)` to the point `(x2, y2)`—then calculates the start and end points for a circular arc of the specified radius such that the arc is tangent to both lines. Finally, this method approximates that arc with a sequence of cubic Bézier curves and appends those curves to the current path.

If the starting point of the arc (that is, the point where a circle of the specified radius must meet the first tangent line in order to also be tangent to the second line) is not the current point, this method appends a straight line segment from the current point to the starting point of the arc.

The ending point of the arc (that is, the point where a circle of the specified radius must meet the second tangent line in order to also be tangent to the first line) becomes the new current point of the path.

### Constructing Paths

`CGContextAddArc`

Adds an arc of a circle to the current path, possibly preceded by a straight line segment

`CGContextAddCurveToPoint`

Appends a cubic Bézier curve from the current point, using the provided control points and end point .

`CGContextAddLines`

Adds a sequence of connected straight-line segments to the current path.

`CGContextAddLineToPoint`

Appends a straight line segment from the current point to the provided point .

`CGContextAddPath`

Adds a previously created path object to the current path in a graphics context.

`CGContextCopyPath`

Returns a path object built from the current path information in a graphics context.

`CGContextAddQuadCurveToPoint`

Appends a quadratic Bézier curve from the current point, using a control point and an end point you specify.

`CGContextAddRect`

Adds a rectangular path to the current path.

`CGContextAddRects`

Adds a set of rectangular paths to the current path.

`CGContextBeginPath`

Creates a new empty path in a graphics context.

`CGContextClosePath`

Closes and terminates the current path’s subpath.

`CGContextMoveToPoint`

Begins a new subpath at the point you specify.

`CGContextAddEllipseInRect`

Adds an ellipse that fits inside the specified rectangle.