CGContextAddArc与CGContextAddArcToPoint参数解析

来源:互联网 发布:教育部网络培训中心 编辑:程序博客网 时间:2024/05/17 04:19
1 .void CGContextAddArc(CGContextRef c, CGFloat x, CGFloat y, CGFloat radius, CGFloat startAngle, CGFloat endAngle, int clockwise)

作用:用来绘画弧线或园。

参数:

CGContextRef c,设备上下文,用来保存绘画信息,e.g: 颜色,线性,宽度等。

CGFloat x, CGFloat y这两个参数是指所要绘画圆的圆心坐标。

CGFloat radius即是圆的半径。

CGFloat startAngle, CGFloat endAngle,圆的开始与结束点弧度。

int clockwise 顺时针还是逆时绘画圆(0:顺时针 1:逆时针).


e.g:绘画一个1/4圆大小的弧度参数如下:CGContextAddArc(context, 1501501000M_PI/20),以(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.









0 0
原创粉丝点击