`

CGContextAddArc用法

 
阅读更多
原文链接 http://differentisnotdifferent.diandian.com/post/2012-07-30/40032320467

CGContextAddArc(CGContextRef c, CGFloat x, CGFloat y, // 圆心(x,y)
                             CGFloat radius, // 半径
                             CGFloat startAngle, CGFloat endAngle, // 开始、结束弧度
                             int clockwise // 绘制方向,YES:逆时针;NO:顺时针
                             )

用法心得:
1. 弧度
中心点右侧 弧度为 0
中心点下方 弧度为 M_PI_2
中心点左侧 弧度为 M_PI
中心点上方 弧度为 -M_PI_2

2. 绘制x弧度圆
所谓x弧度圆,就是不满2π的圆弧。
比如 想画一个 缺口朝下&缺口弧度30度 的x弧度圆
选择逆时针画法:
            startAngle = M_PI_2 - (15/180*M_PI);
            endAngle = M_PI_2 + (diff/180*M_PI);
            clockwise = YES;
选择顺时针画法:
            startAngle = M_PI_2 + (15/180*M_PI);
            endAngle = M_PI_2 - (diff/180*M_PI);
            clockwise = NO;

3. 链接文章中提到的图解(自己不会画图。。。)
CGContextAddArc(context, 160, 200, 100, 0, 45*(M_PI/180), 0);
所以对上面这对代码的解释是这样的:
1)startAngle为0,绿色箭头的地方。
2)endAngle为45,黄色箭头的地方。
3)clockwise为0,按照红色箭头往下绘制图形。
4)所以效果就是红色的扇形。
补充:如果clockwise为1,则是蓝色部分区域。
  • 大小: 73.7 KB
分享到:
评论

相关推荐

    iOS 实现简单画圆弧

    使用`CGContextAddArc`函数添加圆弧到当前路径。例如: ```swift CGContextMoveToPoint(context, center.x, center.y) // 从圆心开始绘制 CGContextAddArc(context, center.x, center.y, radius, startAngle, ...

    IOS 使用OC绘制的有间隙的饼图

    4. **绘制扇形**:使用`CGContextAddArc`和`CGContextFillPath`方法来绘制扇形。`CGContextAddArc`指定起始点、结束点和圆心角,然后`CGContextFillPath`填充扇形。 5. **处理间隙**:为了创建间隙,我们需要在绘制...

    ios-绘制脉冲图以及指针仪表盘.zip

    此外,指针的形状可能是一个箭头或者扇形,这需要使用`CGContextAddLines`或`CGContextAddArc`等方法来构建路径。 为了让指针看起来更真实,开发者可能会添加一些阴影效果,使用`CGContextSetShadowWithColor`来...

    iOS-自定义画圆、扇形、圆弧

    与扇形类似,使用`CGContextAddArc`方法添加路径,但无需移动到起点,因为圆弧默认从(0,0)开始。为了绘制不完整的圆,可以调整`startAngle`和`endAngle`: ```swift let startAngle = CGFloat.pi / 4 let ...

    IOS 动态圆形

    接着,确定圆心和半径,并使用`CGContextAddArc`函数添加一个完整的圆的路径。然后,根据`progress`值动态计算半圆的结束角度,并填充这部分区域。 在实际项目中,你可能还需要添加一些额外的功能,例如动画效果。...

    IOS中实现环形进度条

    8. 视图动画:为了增加视觉效果,还可以使用UIView的animationWithDuration:方法进行动画处理,如平滑地改变进度条的进度。 9. 属性声明与设置:在自定义环形进度条类中,声明和实现如背景色、前景色、进度条宽度等...

    LineDrawDemo

    5. **绘制圆形**:`CGContextAddArc` 方法用于添加一个弧形到当前路径,结合 `CGContextFillPath` 或 `CGContextStrokePath` 可以画出实线圆和虚线圆。`CGContextFillEllipseInRect` 和 `...

    iOS画图类画圆形饼状图

    在iOS中,我们通常在UIView的`drawRect:`方法或CALayer的`display`方法中使用Core Graphics进行绘图。 创建饼状图的第一步是设置图形上下文。每当`drawRect:`或`display`方法被调用时,系统都会提供一个CGContext...

    iphone画饼图和扇形

    在`draw(_:)`方法中,我们可以根据数据计算每个扇形的角度,并使用`CGContextAddArc`绘制扇形。 3. **计算扇形角度**: 假设我们有n个数据项,总值为totalValue,第i个数据项的值为value[i],那么第i个扇形的角度...

    ios-WLPieView.zip

    首先设置颜色,然后使用`CGContextMoveToPoint`和`CGContextAddArc`等函数定义扇区的路径。`CGContextAddArc`函数接受圆心坐标、半径、起始角度和结束角度作为参数,通过连续添加多个弧线段,可以画出一个完整的扇区...

    QuartzDemo

    2. **圆形绘制**:通过`CGContextAddArc`方法,可以绘制出完美的圆形或弧形。该方法需要圆心坐标、半径、起始角度和结束角度作为参数。`CGContextFillPath`则会填充所绘制的圆形。 3. **虚线绘制**:Quartz 2D支持...

    ios圆形进度条代码

    接下来,使用CGContextAddArc方法画出一个圆,其圆心是进度条的中心,半径根据进度条的宽度和高度计算。然后,通过CGContextFillPath填充进度部分,通过改变context的剪切区域(clip)来实现动态进度更新。 在实现...

    IOS drawRect 自定义绘图,自定义任意类型的图形和动画

    `drawRect:` 的基本用法是在其内部调用Core Graphics(CG)框架提供的函数来绘制图形。Core Graphics是Apple的2D绘图系统,提供了丰富的API用于创建高质量的矢量图形。其中,`CGContextRef` 是Core Graphics的核心...

    ios-FZHDrawCircle.zip

    开发者可以通过`CGContext`调用一系列方法,如`CGContextFillPath()`、`CGContextAddArc()`等,来控制线条的样式、颜色和形状。 2. **绘制圆形**: 在`FZHDrawCircle`中,关键函数是`drawCircle()`。它利用`...

    ios 畫儀表與曲線圖

    4. 使用`CGContextAddArc`函数画出仪表盘的圆形部分,然后用`CGContextAddLineTo`添加指针。 5. 设置颜色和线条宽度,使用`CGContextSetStrokeColorWithColor`和`CGContextSetLineWidth`。 6. 考虑添加阴影效果以...

    扇形计时动画

    接下来,使用`CGContextAddArc()`函数画出扇形的路径。为了使动画平滑,我们可以使用`CGContextFillPath()`填充路径,同时设置渐变颜色或者单一颜色。 为了实现动态的扇形计时动画,我们需要在`CADisplayLink`或者`...

    iOS 环形进度条 progressView

    - 使用`CGContextAddArc`绘制圆环路径,起点角度可以从-90度开始,因为0度在3点钟方向,-90度则在12点钟方向。 - 根据`progress`计算实际填充的角度,使用`CGContextAddArcTo`添加填充路径。 - 最后,使用`...

    ios-仪表盘绘图.zip

    你需要计算角度、弧度,使用`CGContextAddArc`绘制圆弧,然后根据数据填充相应的部分。 2. **CALayer与CAShapeLayer**:另一种方法是使用CALayer和它的子类CAShapeLayer。你可以创建一个CAShapeLayer,设置其路径为...

    ios-绘制圆上的点.zip

    优化动画性能的方法包括减少不必要的重绘、使用轻量级的对象、以及利用Core Animation等原生动画框架。在这个项目中,开发者可能通过优化代码结构,如抽离出进度条类,减少了冗余计算,提高了绘制效率。 再者,...

    ios7下载过程中的扇形进度条

    在这个方法中,使用CGContext的相关函数,如`CGContextAddArc`来画出半圆形轨道,`CGContextSetFillColorWithColor`设置填充颜色,`CGContextFillPath`来填充颜色块。为了实现动态更新,你还需要在`setProgress:`...

Global site tag (gtag.js) - Google Analytics