---
title: "addArc(center:radius:startAngle:endAngle:clockwise:transform:)"
framework: coregraphics
role: symbol
role_heading: Instance Method
path: "coregraphics/cgmutablepath/addarc(center:radius:startangle:endangle:clockwise:transform:)"
---

# addArc(center:radius:startAngle:endAngle:clockwise:transform:)

Adds an arc of a circle to the path, specified with a radius and angles.

## Declaration

```swift
func addArc(center: CGPoint, radius: CGFloat, startAngle: CGFloat, endAngle: CGFloat, clockwise: Bool, transform: CGAffineTransform = .identity)
```

## Parameters

- `center`: The center of the arc, in user space coordinates.
- `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`: doc://com.apple.documentation/documentation/Swift/true to make a clockwise arc; doc://com.apple.documentation/documentation/Swift/false to make a counterclockwise arc.
- `transform`: An affine transform to apply to the arc before adding to the path. Defaults to the identity transform if not specified.

## 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 path. The clockwise parameter determines the direction in which the arc is created; the actual direction of the final path is dependent on the transform parameter and the current transform of a context where the path is drawn. 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 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, this 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 Graphics Path

- [move(to:transform:)](coregraphics/cgmutablepath/move(to:transform:).md)
- [addLine(to:transform:)](coregraphics/cgmutablepath/addline(to:transform:).md)
- [addLines(between:transform:)](coregraphics/cgmutablepath/addlines(between:transform:).md)
- [addRect(_:transform:)](coregraphics/cgmutablepath/addrect(_:transform:).md)
- [addRects(_:transform:)](coregraphics/cgmutablepath/addrects(_:transform:).md)
- [addEllipse(in:transform:)](coregraphics/cgmutablepath/addellipse(in:transform:).md)
- [addRoundedRect(in:cornerWidth:cornerHeight:transform:)](coregraphics/cgmutablepath/addroundedrect(in:cornerwidth:cornerheight:transform:).md)
- [addArc(tangent1End:tangent2End:radius:transform:)](coregraphics/cgmutablepath/addarc(tangent1end:tangent2end:radius:transform:).md)
- [addRelativeArc(center:radius:startAngle:delta:transform:)](coregraphics/cgmutablepath/addrelativearc(center:radius:startangle:delta:transform:).md)
- [addCurve(to:control1:control2:transform:)](coregraphics/cgmutablepath/addcurve(to:control1:control2:transform:).md)
- [addQuadCurve(to:control:transform:)](coregraphics/cgmutablepath/addquadcurve(to:control:transform:).md)
- [addPath(_:transform:)](coregraphics/cgmutablepath/addpath(_:transform:).md)
- [closeSubpath()](coregraphics/cgmutablepath/closesubpath().md)
