作用:用来绘画弧线或园。
参数:
CGContextRef c,设备上下文,用来保存绘画信息,e.g: 颜色,线性,宽度等。
CGFloat x, CGFloat y这两个参数是指所要绘画圆的圆心坐标。
CGFloat radius即是圆的半径。
CGFloat startAngle, CGFloat endAngle,圆的开始与结束点弧度。
int clockwise 顺时针还是逆时绘画圆(0:顺时针 1:逆时针).
e.g:绘画一个1/4圆大小的弧度参数如下:CGContextAddArc(context, 150, 150, 100, 0, M_PI/2, 0),以(150,150)为圆心,半径100,开始弧度0,结束弧度为pi/2, 顺时针绘画,图蓝色弧线为效果图,其余为辅助线:
如果想要绘圆,则需要开始弧度和结束弧度相差2个pi。
2. void CGContextAddArcToPoint(CGContextRef c, CGFloat x1, CGFloat y1, CGFloat x2, CGFloat y2, CGFloat radius)
作用:通过三点来画弧线。
第一个参数绘图上下文就不说了,接下来的四个参数是两个点(下面详细道来 ),最后一个是弧度半径。
既然说是通过三个点来绘画弧度,上面的函数也就两个点,还有另外一个点呢?
先看个例子:
CGContextMoveToPoint(context,150,50);//圆弧的起始点
CGContextAddArcToPoint(context,100,80,130,150,30);
( context:上下文)。看出来了吧,第一个点是通过CGContextMoveToPoint来指定的,CGContextAddArcToPoint里的两个是过度点和结束点。
问题又来了:一根弧线肯定能穿过两个点,但三个点就不一定了,像等腰三角形的三个点一根弧线就不可能穿得过了!
名为喜糖的这篇博客能解答这个问题:http://www.cnblogs.com/xitang/p/3929180.html.