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 贝塞尔画图的更多相关文章

  1. iOS Quartz2D画图

    对于刚接触Quartz2D的同学来说,先了解 上下文 的概念,再从最基础的画线来具体体验Quartz2D的画图步骤 介绍Quart2D :是苹果官方的二维(平面)绘图引擎,同时支持iOS和macOS系 ...

  2. iOS贝塞尔曲线(UIBezierPath)的基本使用方法

    简介 UIBezierPath是对Core Graphics框架的一个封装,使用UIBezierPath类我们可以画出圆形(弧线)或者多边形(比如:矩形)等形状,所以在画复杂图形的时候会经常用到. 分 ...

  3. UIBezierPath IOS贝塞尔曲线

    //记录  贝塞尔曲线使用 //根据一个矩形画曲线 + (UIBezierPath *)bezierPathWithRect:(CGRect)rect //根据矩形框的内切圆画曲线 + (UIBezi ...

  4. IOS贝塞尔曲线圆形进度条和加载动画

    做项目让做一个加载动画,一个圈圈在转中间加一个图片,网上有好多demo,这里我也自己写了一个,中间的图片可加可不加.其中主要用到贝塞尔曲线.UIBezierPath是对CGContextRef的进一步 ...

  5. iOS CGContextRef画图时的常用方法

    UIView的drawRect方法 CoreGraphics绘图 综述:描述系统会调用UIView的drawRect方法,所以coreGraphics的所有实现代码放在该函数内,setNeedsDis ...

  6. iOS CGContextRef 画图小结

    CGContextRef context = UIGraphicsGetCurrentContext(); //设置上下文 //画一条线 CGContextSetStrokeColorWithColo ...

  7. IOS 贝塞尔曲线切割圆角

    写一个UIView扩展 1. .h文件 @interface UIView (Corner) - (void)setCornerWithType:(UIRectCorner)type Radius:( ...

  8. iOS - 贝塞尔曲线,折线,曲线,波浪线

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZHlsYW5fbHdiXw==/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...

  9. iOS开发 贝塞尔曲线

    iOS开发 贝塞尔曲线UIBezierPath - 陌云 时间 2014-03-14 11:04:00  博客园-所有随笔区 原文  http://www.cnblogs.com/moyunmo/p/ ...

随机推荐

  1. 2016年团体程序设计天梯赛-决赛 L1-7. 到底是不是太胖了(10)

    据说一个人的标准体重应该是其身高(单位:厘米)减去100.再乘以0.9所得到的公斤数.真实体重与标准体重误差在10%以内都是完美身材(即 |真实体重-标准体重| < 标准体重x10%).已知市斤 ...

  2. POJ 3122 & 3258 & 3273 #二分

    以下三道都是经典二分,道理都差不多,代码就贴在一起了. POJ 3122    POJ 3258    POJ 3273 POJ 3122: #include<iostream> #inc ...

  3. 客户端登录验证 -- ESFramework 4.0 快速上手(15)

    在之前版本的Rapid引擎中,是没有提供客户端登陆验证的机制的,如果要验证用户的帐号密码信息,我们只有自己手动通过自定义信息来实现.在2011.04.25发布的新版本中,客户端Rapid引擎,则内置了 ...

  4. 重装系统之后Hexo快速配置

    安装准备软件 Node.js Git 打开 Git Bash hexo文件夹,右键: 配置SSH Keys 检查SSH keys设置,看一下电脑现有的ssh key cd ~/. ssh 检查本机的s ...

  5. C# using

    我们知道 using 语句只不过是提供能确保正确使用 IDisposable 对象的方便语法. 1: using (IDisposable reader1 = new StreamReader(inp ...

  6. 【Loadrunner】初学Loadrunner——IP欺骗

    因为在默认情况下,同一个用户用同一个IP访问运行是不符合实际情况的,而且很多网站会自动屏蔽同个IP多次重复访问.那么就想到了Loadrunner的虚拟IP技术,也就是常说的IP欺骗.在用Loadrun ...

  7. Python 学习笔记7

    今天很残酷,明天很残酷,后天很美好.但绝大多数人会死在明天的路上.只有真正的勇士才能看到后天的太阳! Python学习是枯燥的.但是一定要坚持! 昨天学习了数据结构和模块. 今天学习输入和输出.错误与 ...

  8. Webdriver实现下载功能,屏蔽掉windows弹出的对话框,FireFox下设置浏览器的属性,两种实现方式:

    一.使用一个全新的FireFox浏览器打开Web应用,浏览器不带任何插件,也未对浏览器做任何默认配置,但需要对浏览器属性进行配置 // 获取浏览器的所有配置文件 ProfilesIni allProf ...

  9. 欧几里得算法求最大公约数(gcd)

    关于欧几里得算法求最大公约数算法, 代码如下: int gcd( int a , int b ) { if( b == 0 ) return a ; else gcd( b , a % b ) ; } ...

  10. hadoop文件系统浅析

    1.什么是分布式文件系统? 管理网络中跨多台计算机存储的文件系统称为分布式文件系统. 2.为什么需要分布式文件系统了? 原因很简单,当数据集的大小超过一台独立物理计算机的存储能力时候,就有必要对它进行 ...