addRelativeArc(center:radius:startAngle:delta:transform:)
Adds an arc of a circle to the path, specified with a radius and a difference in angle.
Declaration
mutating func addRelativeArc(center: CGPoint, radius: CGFloat, startAngle: Angle, delta: Angle, 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 from the positive x-axis.
- delta:
The difference between the starting angle and ending angle of the arc. A positive value creates a counter- clockwise arc (in user space coordinates), and vice versa.
- transform:
An affine transform to apply to the arc before adding to the path. Defaults to the identity transform if not specified. /
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 delta parameter determines both the length of the arc 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. However, because SwiftUI by default uses a vertically-flipped coordinate system (with the origin in the top-left of the view), specifying a clockwise arc results in a counterclockwise arc after the transformation is applied.
If the path ends with an unclosed subpath, this method adds a line connecting the current point to the starting point of the arc. If there is no unclosed subpath, 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
Drawing a path
move(to:)addArc(center:radius:startAngle:endAngle:clockwise:transform:)addArc(tangent1End:tangent2End:radius:transform:)addCurve(to:control1:control2:)addEllipse(in:transform:)addLine(to:)addLines(_:)addPath(_:transform:)addQuadCurve(to:control:)addRect(_:transform:)addRects(_:transform:)addRoundedRect(in:cornerSize:style:transform:)closeSubpath()