美文网首页iOS学习
简单的图形定制

简单的图形定制

作者: JackChen__ | 来源:发表于2016-10-06 01:01 被阅读0次

画图入口

  • 关于画图的方法必须写在这个方法中

  • frame被确定后,就会执行drawRect方法

  • 执行[self setNeedsDisplay];方法时会重新调用drawRect方法


- (void)drawRect:(CGRect)rect {

// Drawing code

}

图形定制

扇形图


- (void)drawPieChart {

NSMutableArray *array =[NSMutableArray array];

for (int i = 0; i < arc4random_uniform(6) + 1; i++) {

[array addObject:@(RANDOMNUM)];

}

//用来存储所有值的总和

CGFloat totalF = 0.0;

//计算总和

for (NSNumber *num in array) {

totalF += num.floatValue;

}

//中心点坐标

CGPoint centerP = CGPointMake(130, 140);

//半径

CGFloat radiusF = 99.0;

//起点坐标

CGFloat startF = 0.0;

//终点坐标

CGFloat endF = 0.0;

for (int i = 0; i < array.count; i++) {

CGFloat currF = [array[i] floatValue];

//所占比例--度数大小

CGFloat angleF = currF / (totalF*1.0) * M_PI * 2;

startF = endF;

endF = angleF + startF;

UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:centerP radius:radiusF startAngle:startF endAngle:endF clockwise:YES];//clockwise :是否顺时针

//增加一条线段到中心点

[path addLineToPoint:centerP];

//关闭路径,组成扇形

[path closePath];

//颜色

[RANDOMCOLOR set];

[path fill];

}

}

虚线


- (void)drawDash {

//1.创建上下文

CGContextRef ref = UIGraphicsGetCurrentContext();

//2.创建路径

UIBezierPath *path = [UIBezierPath bezierPath];

//3.增加起点

[path moveToPoint:CGPointZero];

//4.增加一条线段到某个点

[path addLineToPoint:CGPointMake(99, 99)];

//5.颜色

[[UIColor redColor] set];

//6.线宽

CGContextSetLineWidth(ref, 4);

//6+.虚线

/**

*  lengths[] = {4, 2}

*  原理: 实线-4 空白-2 实线-4 空白-2

*  lengths[] = {4, 2, 3}

*  原理: 实线-4 空白-2 实线-3 空白-4 实线-2 空白-3

*  先实线后空白,实线和空白的长度为数组的循环引用

*/

CGFloat lengths[] = {4, 2};//因为CGContextSetLineDash方法用到的数组为C语言中的数组,所以此处数组用此种格式

CGContextSetLineDash(ref, 0, lengths, 2);//2为lengths的长度

//7.将路径添加到上下文

CGContextAddPath(ref, path.CGPath);

//8.渲染

//    CGContextFillPath(ref);//fill

//    CGContextStrokePath(ref);//stroke

CGContextDrawPath(ref, kCGPathFillStroke);//stroke + fill

}

椭圆(圆)


- (void)drawOval {

UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(88, 60, 99, 99)];

/**

*  set = setFill + setStroke

*/

//边框

[[UIColor redColor] setStroke];

//填充

[[UIColor yellowColor] setFill];

//线宽

path.lineWidth = 5;

//绘制

[path fill];//fill表示填充

[path stroke];//stroke表示绘制边框

}

三角形


- (void)drawTriangle {

//创建贝塞尔曲线类(路径)

UIBezierPath *path = [UIBezierPath bezierPath];

//起点坐标

[path moveToPoint:CGPointMake(20, 80)];

//增加一条线段到某个点

[path addLineToPoint:CGPointMake(220, 280)];

[path addLineToPoint:CGPointMake(230, 30)];

//将路径闭合,形成三角形

[path closePath];

//设置线段的颜色

[[UIColor redColor] set];

//设置线宽

path.lineWidth = 4;

//绘制

[path stroke];

}

相关文章

  • 简单的图形定制

    画图入口 关于画图的方法必须写在这个方法中 frame被确定后,就会执行drawRect方法 执行[self se...

  • 【高级特性】55、数据可视化(matplotlib)

    目录一、numpy矩阵处理库二、matplotlib绘图库三、基本思路四、简单函数图形五、定制线形/标签图例六、散...

  • 基于巨控GRM230GRM530PLC无线远程通讯的手机APP

    一个网页上可组态图形、手机上图形监控是工程师们比较喜欢的功能,不需要定制APP,不需要定制网站,又要保证手机监控工...

  • 第一学段(1~2年级)

    【内容要求】 1.图形的认识与测量 (1)通过实物和模型辨认简单的立体图形和平面图形,能对图形分类,会用简单图形拼...

  • R语言系列第六期:③R语言高级绘图(上)

    这一节将介绍更多的R图形资源。首先是定制R图形的一些常用方法,主要涉及数据和模型的图形绘制。然后是如何自定义其他类...

  • iOS开发·CALayer,CATextLayer,CAShap

    CATextLayer简单使用 CAShapeLayer简单使用专门用来绘制矢量图形的图形子类,可以指定线宽和颜色...

  • HTML5Canvas

    Canvas绘制简单图形 Canvas简单使用 canvas元素本省并不能实现图形绘制功能,绘制图形的工作需要有J...

  • OpenGLES入门(三)

    上一章中还是对平面图形的绘制和简单的图形变换,在本章中将会开始绘制简单的3D图形,并对图形进行组合变换。 开始学习...

  • Matplotlib

    Matplotlib 绘制简单图形

  • 浅谈OpenGL专业名词

    图形API 要了解OpenGL,首先需要知道什么是图形API。简单解释图形API就是图形的底层渲染实现方法。并且它...

网友评论

    本文标题:简单的图形定制

    本文链接:https://www.haomeiwen.com/subject/dwreyttx.html