Function

Appends an arc to a mutable graphics path, possibly preceded by a straight line segment.

## Parameters

`path`

The mutable path to change. The path must not be empty.

`m`

A pointer to an affine transformation matrix, or `NULL` if no transformation is needed. If specified, Core Graphics applies the transformation to the arc before it is added to the path.

`x1`

The x-coordinate of the user space 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-coordinate of the user space 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-coordinate of the user space for the end point of the second tangent line. The second tangent line is drawn from `(x1,y1)` to `(x2,y2)`.

`y2`

The y-coordinate of the user space 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 function uses a sequence of cubic Bézier curves to create an arc that is tangent to the line from the current point to (x1,y1) and to the line from (x1,y1) to (x2,y2). The start and end points of the arc are located on the first and second tangent lines, respectively. The start and end points of the arc are also the “tangent points” of the lines.

If the current point and the first tangent point of the arc (the starting point) are not equal, Core Graphics appends a straight line segment from the current point to the first tangent point.

The ending point of the arc becomes the new current point of the path.

For another way to draw an arc in a path, see `CGPathAddArc`.

### Modifying Core Graphics Paths

`CGPathAddArc`

Appends an arc to a mutable graphics path, possibly preceded by a straight line segment.

`CGPathAddRelativeArc`

Appends an arc to a mutable graphics path, possibly preceded by a straight line segment.

`CGPathAddCurveToPoint`

Appends a cubic Bézier curve to a mutable graphics path.

`CGPathAddLines`

Appends an array of new line segments to a mutable graphics path.

`CGPathAddLineToPoint`

Appends a line segment to a mutable graphics path.

`CGPathAddPath`

Appends a path to onto a mutable graphics path.

`CGPathAddQuadCurveToPoint`

Appends a quadratic Bézier curve to a mutable graphics path.

`CGPathAddRect`

Appends a rectangle to a mutable graphics path.

`CGPathAddRects`

Appends an array of rectangles to a mutable graphics path.

`CGPathAddRoundedRect`

Appends a rounded rectangle to a mutable graphics path.

`CGPathApply`

For each element in a graphics path, calls a custom applier function.

`CGPathMoveToPoint`

Starts a new subpath at a specified location in a mutable graphics path.

`CGPathCloseSubpath`

Closes and completes a subpath in a mutable graphics path.

`CGPathAddEllipseInRect`

Adds to a path an ellipse that fits inside a rectangle.