« Older: Move UIButton with CALayer « Older
Newer: iOS: Touching the Screen »Newer »

# What 'AddArcToPoint' Does

CGPathAddArcToPoint and CGContextAddArcToPoint can be used easily to draw shapes with rounded corners. These two methods do exactly the same thing except that CGContextAddArcToPoint works on the path currently in a CGContext rather than a CGMutablePath.

Here is the function call for `AddArcToPoint`

:

The function works like this:

The red line is the path that the function will draw.
P1 is the the point that the path is at before the function
is called, `x1, y1, x2, y2`

correspond to the values passed
in by the function, and `r`

is the `radius`

value. The function
doesn’t line to the second point given, it stops at the end of
the arc.

The way this is constructed is to imagine that you’ve drawn
from the current point to the point at `x1, y1`

and then to
`x2, y2`

:

Then you draw a circle with the given radius, and move it so that it just touches each of the lines:

`I1`

and `I2`

are the points where the circle touches the lines.

`addArcToPoint`

will make a path from the current point `P0`

to `I1`

, it will then follow the arc of the circle around
to `I2`

and then stop (It won’t make a path to the end
point). This is shown in the initial diagram.

So you could implement a view to draw rounded triangles like this:

Here is a triangle drawn by the view above: