ios 贝塞尔画图
CGContextRef context = UIGraphicsGetCurrentContext();
//写文字
CGContextSetRGBFillColor(context, 1, 0, 0, 1.0);//设置填充颜色
UIFont *font = [UIFont boldSystemFontOfSize:15.0];
// NSString *str = @"圆";
// [str drawInRect:<#(CGRect)#> withAttributes:<#(NSDictionary *)#>];
//边框圆
CGContextSetRGBStrokeColor(context, 1, 1, 1, 1.0);//画笔颜色
CGContextSetLineWidth(context, 1.0);//线的宽度
CGContextAddArc(context, 50, 100, 20, 0, 2*M_PI, 0);
CGContextDrawPath(context, kCGPathStroke);//绘制路径
//填充圆
CGContextAddArc(context, 120, 100, 25, 2*M_PI, 0, 0);//添加一个圆
CGContextDrawPath(context, kCGPathFill);//绘制填充
//填充圆 有边框
CGContextSetFillColorWithColor(context, [UIColor redColor].CGColor);
CGContextSetLineWidth(context, 3.0);
CGContextAddArc(context, 200, 100, 30, 0, 2*M_PI, 0);
//kCGPathFill填充非零绕数规则,kCGPathEOFill表示用奇偶规则,kCGPathStroke路径,kCGPathFillStroke路径填充,kCGPathEOFillStroke表示描线,不是填充
CGContextDrawPath(context, kCGPathFillStroke);
//画线
CGPoint aPoints[2];
aPoints[0] = CGPointMake(0, 0);
aPoints[1] = CGPointMake(self.frame.size.width, self.frame.size.height);
CGContextAddLines(context, aPoints, 2);
CGContextDrawPath(context, kCGPathStroke);
//画弧
CGContextSetRGBStrokeColor(context, 1, 1, 0.5, 1.0);
CGContextMoveToPoint(context, 50, 200);
CGContextAddArcToPoint(context, 58, 180, 66, 200, 10);
CGContextStrokePath(context);
//画矩形
CGContextStrokeRect(context, CGRectMake(50, 250, 50, 50));
CGContextFillRect(context, CGRectMake(110, 250, 50, 50));
//矩形 并填充颜色
CGContextSetLineWidth(context, 2.0);
CGContextSetFillColorWithColor(context, [UIColor greenColor].CGColor);
CGContextAddRect(context, CGRectMake(200, 250, 50, 50));
CGContextDrawPath(context, kCGPathFillStroke);
//第一种填充方式
CAGradientLayer *gradient1 = [CAGradientLayer layer];
gradient1.frame = CGRectMake(50, 320, 60, 30);
gradient1.colors = [NSArray arrayWithObjects:(id)[UIColor whiteColor].CGColor,(id)[UIColor grayColor].CGColor,(id)[UIColor blackColor].CGColor,(id)[UIColor yellowColor].CGColor,(id)[UIColor blueColor].CGColor,(id)[UIColor redColor].CGColor,(id)[UIColor greenColor].CGColor,(id)[UIColor orangeColor].CGColor,(id)[UIColor brownColor].CGColor, nil];
[self.layer insertSublayer:gradient1 atIndex:0];
//第二种填充方式
CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();
CGFloat colors[] =
{
1,1,1, 1.00,
1,1,0, 1.00,
1,0,1, 1.00,
0,1,1, 1.00,
0,0,1, 1.00,
1,0,0, 1.00,
0,1,0, 1.00,
0,0,0, 1.00,
};
CGGradientRef gradient = CGGradientCreateWithColorComponents(rgb, colors, nil, sizeof(colors)/(sizeof(colors[0])*4));
CGColorSpaceRelease(rgb);
CGContextSaveGState(context);
CGContextMoveToPoint(context, 150, 320);
CGContextAddLineToPoint(context, 170, 320);
CGContextAddLineToPoint(context, 170, 350);
CGContextAddLineToPoint(context, 150, 350);
CGContextClip(context);
CGContextDrawLinearGradient(context, gradient, CGPointMake(100, 320), CGPointMake(130, 350), kCGGradientDrawsAfterEndLocation);
CGContextRestoreGState(context);
ios 贝塞尔画图的更多相关文章
- iOS Quartz2D画图
对于刚接触Quartz2D的同学来说,先了解 上下文 的概念,再从最基础的画线来具体体验Quartz2D的画图步骤 介绍Quart2D :是苹果官方的二维(平面)绘图引擎,同时支持iOS和macOS系 ...
- iOS贝塞尔曲线(UIBezierPath)的基本使用方法
简介 UIBezierPath是对Core Graphics框架的一个封装,使用UIBezierPath类我们可以画出圆形(弧线)或者多边形(比如:矩形)等形状,所以在画复杂图形的时候会经常用到. 分 ...
- UIBezierPath IOS贝塞尔曲线
//记录 贝塞尔曲线使用 //根据一个矩形画曲线 + (UIBezierPath *)bezierPathWithRect:(CGRect)rect //根据矩形框的内切圆画曲线 + (UIBezi ...
- IOS贝塞尔曲线圆形进度条和加载动画
做项目让做一个加载动画,一个圈圈在转中间加一个图片,网上有好多demo,这里我也自己写了一个,中间的图片可加可不加.其中主要用到贝塞尔曲线.UIBezierPath是对CGContextRef的进一步 ...
- iOS CGContextRef画图时的常用方法
UIView的drawRect方法 CoreGraphics绘图 综述:描述系统会调用UIView的drawRect方法,所以coreGraphics的所有实现代码放在该函数内,setNeedsDis ...
- iOS CGContextRef 画图小结
CGContextRef context = UIGraphicsGetCurrentContext(); //设置上下文 //画一条线 CGContextSetStrokeColorWithColo ...
- IOS 贝塞尔曲线切割圆角
写一个UIView扩展 1. .h文件 @interface UIView (Corner) - (void)setCornerWithType:(UIRectCorner)type Radius:( ...
- iOS - 贝塞尔曲线,折线,曲线,波浪线
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZHlsYW5fbHdiXw==/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...
- iOS开发 贝塞尔曲线
iOS开发 贝塞尔曲线UIBezierPath - 陌云 时间 2014-03-14 11:04:00 博客园-所有随笔区 原文 http://www.cnblogs.com/moyunmo/p/ ...
随机推荐
- lt>&eq
lt:less than,小于 gt:greater than,大于 eq:equal,等于 le:less equal,小于等于 ge:greater than,大于等于
- 永久修改python默认的字符编码为utf-8
这个修改说来简单,其实不同的系统,修改起来还真不一样.下面来罗列下3中情况 首先所有修改的动作都是要创建一个叫 sitecustomize.py的文件,为什么要创建这个文件呢,是因为python在启动 ...
- UEditor+七牛,实现图片直连上传
最近做的项目,涉及到使用富文本编辑器,我选择了百度的UEditor.同时,我们的图片放在七牛云存储上.关于这两者间的集成,我写下一些个人的经验,与大家分享. 图片上传方案 目前来说,Web端基于七牛等 ...
- 【Sort】Merge Sort归并排序
归并排序运行时间O(N log N),但是由于需要线性附加内存,所以很少用于主存排序. 算法核心在于以下三条语句,分治递归,分别对左半边和右半边的数组进行排序,然后把左右半边的数组一一进行比较放入数组 ...
- hdu_5874_Friends and Enemies(公式题)
题目链接:hdu_5874_Friends and Enemies 题意: 有nn个人, mm种颜色的石头, 人两两之间要么是朋友, 要么是敌人. 每个人可以携带若干种石头或者不带, 要求朋友之间至少 ...
- nginx在linux下的目录结构
配置文件目录 putty 下 whereis nginx /etc/nginx
- 一步一步学EF系列3【升级篇 实体与数据库的映射】
之前的三张为基础篇,如果不考虑架构问题,做一般的小程序,以足够用了.基本的增删改查也都有了.但是作为学习显然是不够的.通过之前三章的学习,有没有发现这样写有什么问题,有没有觉得繁琐的?可能有人会说,之 ...
- Business Intelligence(BI) 商务智能
商业智能技术正是一种能够帮助企业迅速地完成信息采集.分析的先进技术.它以数据仓库(Data Warehousing).在线分析处理(OLAP).数据挖掘(Data Mining)3种技术的整合为基础, ...
- C# 调用C++ DLL 的类型转换
//C#调用C++的DLL搜集整理的所有数据类型转换方式,可能会有重复或者多种方案,自己多测试 //c++:HANDLE(void *) ---- c#:System.IntPtr //c++:Byt ...
- CentOS的KVM实践(虚拟机创建、网桥配置、Spice)
最近公司准备上一套基于openstack的虚拟桌面系统,作为该项目的负责人,觉得有必要自己实践一下,该系统的搭建.最基础的就是需要了解基于linux的kvm的实践. 一.基础软件包准备 系统是采用px ...