CGPathAddArcToPoint
Appends an arc to a mutable graphics path, possibly preceded by a straight line segment.
Declaration
extern void CGPathAddArcToPoint(CGMutablePathRef path, const CGAffineTransform *m, CGFloat x1, CGFloat y1, CGFloat x2, CGFloat y2, CGFloat radius);Parameters
- path:
The mutable path to change. The path must not be empty.
- m:
A pointer to an affine transformation matrix, or
NULLif 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.