IOS开发CGContextAddArc与CGContextAddArcToPoint参数解析

释放双眼,带上耳机,听听看~!

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, 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里的两个是过度点和结束点。

问题又来了:一根弧线肯定能穿过两个点,但三个点就不一定了,像等腰三角形的三个点一根弧线就不可能穿得过了!

人已赞赏
iOS文章

iOS关于UICollectionView横向分页滚动,cell左右排版功能的实现

2020-2-19 14:14:02

iOS文章

iOS 基于CATransition实现翻页、旋转等动画效果

2020-2-19 16:49:50

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索