UIBezierPath画圆弧 addArcWithCenter

来自:http://blog.csdn.net/lgm252008/article/details/34819743

UIBezierPath通过

- (void)addArcWithCenter:(CGPoint)center radius:(CGFloat)radius startAngle:(CGFloat)startAngle endAngle:(CGFloat)endAngle clockwise:(BOOL)clockwise

可以画出一段弧线。

看下各个参数的意义:

center:圆心的坐标

radius:半径

startAngle:起始的弧度

endAngle:圆弧结束的弧度

clockwise:YES为顺时针,No为逆时针

方法里面主要是理解startAngle与endAngle,刚开始我搞不清楚一段圆弧从哪算起始和终止,比如弧度为0的话,是从上下左右哪个点开始算

.

    CAShapeLayer *layer = [[CAShapeLayer alloc] init];
    layer.name = @"Radius";
    CGFloat lineWidth =  10;
    UIBezierPath *path = [UIBezierPath bezierPath];
    path.lineWidth = lineWidth;
    path.lineCapStyle = kCGLineCapButt;
    CGPoint center = CGPointMake(self.bounds.size.width/2, self.bounds.size.height/2);
    CGFloat radius = (self.bounds.size.width - lineWidth)/2;
    
    CGFloat startAngle = -((float)M_PI)/7; //
    CGFloat endAngle = ((float)M_PI)-startAngle ;
    
    [[UIColor whiteColor] set];
    
    [path addArcWithCenter:center radius:radius startAngle:startAngle endAngle:endAngle clockwise:YES];
    
    [path stroke];
    
    [path closePath];

时间: 2024-10-07 09:11:22

UIBezierPath画圆弧 addArcWithCenter的相关文章

UIBezierPath画圆弧的记录

UIBezierPath通过 - (void)addArcWithCenter:(CGPoint)center radius:(CGFloat)radius startAngle:(CGFloat)startAngle endAngle:(CGFloat)endAngle clockwise:(BOOL)clockwise 可以画出一段弧线. 看下各个参数的意义: center:圆心的坐标 radius:半径 startAngle:起始的弧度 endAngle:圆弧结束的弧度 clockwise

使用CAShapeLayer和UIBezierPath画一个自定义半圆弧button

通常我们使用系统自带的UIButton时,一般都是Rect矩形形式的,或则美工给出一张半圆弧的按钮,如图为一张半圆加三角形的按钮,而此时,如果给按钮添加点击事件时,响应事件依然为矩形区域,不符合我们的需求: 本文为解决这样的按钮问题: 如下图:使用CAShapeLayer和UIBezierPath画了一个button,这个按钮由一个半圆弧和三角形构成,现在我们需要点击黄颜色区域时,响应按钮点击事件,弹出对话框,其他白色区域,不响应点击事件: 第一步: 如下图,自定义一个类,CustomButto

使用CAShapeLayer与UIBezierPath画出想要的图形(转)

使用CAShapeLayer与UIBezierPath可以实现不在view的drawRect方法中就画出一些想要的图形 步骤: 1.新建UIBezierPath对象bezierPath 2.新建CAShapeLayer对象caShapeLayer 3.将bezierPath的CGPath赋值给caShapeLayer的path,即caShapeLayer.path = bezierPath.CGPath 4.把caShapeLayer添加到某个显示该图形的layer中 下面的小例子是一个环形的p

使用CAShapeLayer与UIBezierPath画出想要的图形

使用CAShapeLayer与UIBezierPath可以实现不在view的drawRect方法中就画出一些想要的图形 步骤: 1.新建UIBezierPath对象bezierPath 2.新建CAShapeLayer对象caShapeLayer 3.将bezierPath的CGPath赋值给caShapeLayer的path,即caShapeLayer.path = bezierPath.CGPath 4.把caShapeLayer添加到某个显示该图形的layer中 下面的小例子是一个环形的p

css画圆弧

有时候,在编写公众号,或者微信小程序,或者webapp的时候,需要一些比较特殊的效果,如圆弧. 效果图如下: 上图中的红色部分. 其实原理很简单,只要在外部写一个box装住红色的部分,红色部分设置宽度比box宽度的大,然后调整红色的圆弧和位置就可以了 直接上代码 .box{ width:100%; background-color: #5e5858; height: 500px; text-align: center; } .arcbox{ width: 300px; height: 300px

Raphael画圆弧

paper.path([pathString]) A  椭圆 (rx ry x-axis-rotation larg-arc sweep-flag x y) 参数 rx 椭圆的横轴 ry 椭圆的纵轴 x-axis-rotation 椭圆的横轴与X轴的角度 larg-arc 弧度的(0为小角度 1为大角度) sweep-flag 围绕椭圆的方向(0为顺时针  1为逆时针) x y 为的弧的终点

画圆弧方法

已知圆心坐标P,圆上一个点坐标A,A-P直线以圆心旋转角度x后,求新的A点坐标P新.x = (A.x - P.x) cos((x/180)*PI) + P.xP新.y = (A.x - P.x) sin((x/180)*PI) + P.y

关于如何解决canvas的画圆弧时的锯齿感以及如何让canvas的图更清晰?

let width = canvas.width,height=canvas.height;if (window.devicePixelRatio) {   canvas.style.width = width + "px";   canvas.style.height = height + "px";   canvas.height = height * window.devicePixelRatio;   canvas.width = width * windo

使用UIBezierPath绘制图形

当需要画图时我们一般创建一个UIView子类, 重写其中的drawRect方法 再drawRect方法中利用UIBezierPath添加画图 UIBezierPath的使用方法: (1)创建一个Bezier path对象. (2)使用方法moveToPoint:去设置初始线段的起点. (3)添加line或者curve去定义一个或者多个subpaths. (4)改变UIBezierPath对象跟绘图相关的属性. 我们可以设置stroked path的属性lineWidth和lineJoinStyl