Contents

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