---
title: CGContextAddArc
framework: coregraphics
role: symbol
role_heading: Function
path: coregraphics/cgcontextaddarc
---

# CGContextAddArc

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

## Declaration

```occ
extern void CGContextAddArc(CGContextRef c, CGFloat x, CGFloat y, CGFloat radius, CGFloat startAngle, CGFloat endAngle, int clockwise);
```

## Parameters

- `c`: A graphics context.
- `x`: The x-value, in user space coordinates, for the center of the arc.
- `y`: The y-value, in user space coordinates, for the center of the arc.
- `radius`: The radius of the arc, in user space coordinates.
- `startAngle`: The angle to the starting point of the arc, measured in radians from the positive x-axis.
- `endAngle`: The angle to the end point of the arc, measured in radians from the positive x-axis.
- `clockwise`: Specify 1 to create a clockwise arc or 0 to create a counterclockwise arc.

## Discussion

Discussion This method calculates starting and ending points using the radius and angles you specify, uses a sequence of cubic Bézier curves to approximate a segment of a circle between those points, and then appends those curves to the current path. The clockwise parameter determines the direction in which the arc is created; the actual direction of the final path is dependent on the current transformation matrix of the graphics context. In a flipped coordinate system (the default for UIView drawing methods in iOS), specifying a clockwise arc results in a counterclockwise arc after the transformation is applied. If the current path already contains a subpath, this method adds a line connecting the current point to the starting point of the arc. If the current path is empty, his method creates a new subpath whose starting point is the starting point of the arc. The ending point of the arc becomes the new current point of the path.

## See Also

### Constructing a Current Graphics Path

- [beginPath()](coregraphics/cgcontext/beginpath().md)
- [CGContextMoveToPoint](coregraphics/cgcontextmovetopoint.md)
- [CGContextAddLineToPoint](coregraphics/cgcontextaddlinetopoint.md)
- [CGContextAddLines](coregraphics/cgcontextaddlines.md)
- [addRect(_:)](coregraphics/cgcontext/addrect(_:).md)
- [CGContextAddRects](coregraphics/cgcontextaddrects.md)
- [addEllipse(in:)](coregraphics/cgcontext/addellipse(in:).md)
- [CGContextAddArcToPoint](coregraphics/cgcontextaddarctopoint.md)
- [CGContextAddCurveToPoint](coregraphics/cgcontextaddcurvetopoint.md)
- [CGContextAddQuadCurveToPoint](coregraphics/cgcontextaddquadcurvetopoint.md)
- [addPath(_:)](coregraphics/cgcontext/addpath(_:).md)
- [closePath()](coregraphics/cgcontext/closepath().md)
- [path](coregraphics/cgcontext/path.md)
- [replacePathWithStrokedPath()](coregraphics/cgcontext/replacepathwithstrokedpath().md)
