// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();/*NO.1画一条线CGContextSetRGBStrokeColor(context, 0.5, 0.5, 0.5, 0.5);//线条颜色
CGContextMoveToPoint(context, 20, 20);
CGContextAddLineToPoint(context, 200,20);
CGContextStrokePath(context);
*//*NO.2写文字CGContextSetLineWidth(context, 1.0);
CGContextSetRGBFillColor (context, 0.5, 0.5, 0.5, 0.5);
UIFont *font = [UIFont boldSystemFontOfSize:18.0];
[@"公司:北京中软科技股份有限公司\n部门:ERP事业部\n姓名:McLiang" drawInRect:CGRectMake(20, 40, 280, 300) withFont:font];
*//*NO.3画一个正方形图形 没有边框CGContextSetRGBFillColor(context, 0, 0.25, 0, 0.5);
CGContextFillRect(context, CGRectMake(2, 2, 270, 270));
CGContextStrokePath(context);
*//*NO.4画正方形边框CGContextSetRGBStrokeColor(context, 0.5, 0.5, 0.5, 0.5);//线条颜色
CGContextSetLineWidth(context, 2.0);
CGContextAddRect(context, CGRectMake(2, 2, 270, 270));
CGContextStrokePath(context);
*//*NO.5画方形背景颜色CGContextTranslateCTM(context, 0.0f, self.bounds.size.height);
CGContextScaleCTM(context, 1.0f, -1.0f);
UIGraphicsPushContext(context);
CGContextSetLineWidth(context,320);
CGContextSetRGBStrokeColor(context, 250.0/255, 250.0/255, 210.0/255, 1.0);
CGContextStrokeRect(context, CGRectMake(0, 0, 320, 460));
UIGraphicsPopContext();
*//*NO.6椭圆CGRect aRect= CGRectMake(80, 80, 160, 100);
CGContextSetRGBStrokeColor(context, 0.6, 0.9, 0, 1.0);
CGContextSetLineWidth(context, 3.0);
CGContextAddEllipseInRect(context, aRect); //椭圆
CGContextDrawPath(context, kCGPathStroke);
*//*NO.7
CGContextBeginPath(context);
CGContextSetRGBStrokeColor(context, 0, 0, 1, 1);
CGContextMoveToPoint(context, 100, 100);
CGContextAddArcToPoint(context, 50, 100, 50, 150, 50);
CGContextStrokePath(context);
*//*NO.8渐变
CGContextClip(context);
CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();
CGFloat colors[] =
{
204.0 / 255.0, 224.0 / 255.0, 244.0 / 255.0, 1.00,
29.0 / 255.0, 156.0 / 255.0, 215.0 / 255.0, 1.00,
0.0 / 255.0, 50.0 / 255.0, 126.0 / 255.0, 1.00,
};
CGGradientRef gradient = CGGradientCreateWithColorComponents
(rgb, colors, NULL, sizeof(colors)/(sizeof(colors[0])*4));
CGColorSpaceRelease(rgb);
CGContextDrawLinearGradient(context, gradient,CGPointMake
(0.0,0.0) ,CGPointMake(0.0,self.frame.size.height),
kCGGradientDrawsBeforeStartLocation);
*//* NO.9四条线画一个正方形
//画线
UIColor *aColor = [UIColor colorWithRed:0 green:1.0 blue:0 alpha:0];
CGContextSetRGBStrokeColor(context, 1.0, 0, 0, 1.0);
CGContextSetFillColorWithColor(context, aColor.CGColor);
CGContextSetLineWidth(context, 4.0);
CGPoint aPoints[5];
aPoints[0] =CGPointMake(60, 60);
aPoints[1] =CGPointMake(260, 60);
aPoints[2] =CGPointMake(260, 300);
aPoints[3] =CGPointMake(60, 300);
aPoints[4] =CGPointMake(60, 60);
CGContextAddLines(context, aPoints, 5);
CGContextDrawPath(context, kCGPathStroke); //开始画线
*//* NO.10
UIColor *aColor = [UIColor colorWithRed:0 green:1.0 blue:0 alpha:0];
CGContextSetRGBStrokeColor(context, 1.0, 0, 0, 1.0);
CGContextSetFillColorWithColor(context, aColor.CGColor);
//椭圆
CGRect aRect= CGRectMake(80, 80, 160, 100);
CGContextSetRGBStrokeColor(context, 0.6, 0.9, 0, 1.0);
CGContextSetLineWidth(context, 3.0);
CGContextSetFillColorWithColor(context, aColor.CGColor);
CGContextAddRect(context, rect); //矩形
CGContextAddEllipseInRect(context, aRect); //椭圆
CGContextDrawPath(context, kCGPathStroke);
*//* NO.11
画一个实心的圆CGContextFillEllipseInRect(context, CGRectMake(95, 95, 100.0, 100));
*//*NO.12
画一个菱形
CGContextSetLineWidth(context, 2.0);
CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);
CGContextMoveToPoint(context, 100, 100);
CGContextAddLineToPoint(context, 150, 150);
CGContextAddLineToPoint(context, 100, 200);
CGContextAddLineToPoint(context, 50, 150);
CGContextAddLineToPoint(context, 100, 100);
CGContextStrokePath(context);
*//*NO.13 画矩形
CGContextSetLineWidth(context, 2.0);CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);CGRect rectangle = CGRectMake(60,170,200,80);CGContextAddRect(context, rectangle);CGContextStrokePath(context);
*//*椭圆
CGContextSetLineWidth(context, 2.0);CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);CGRect rectangle = CGRectMake(60,170,200,80);CGContextAddEllipseInRect(context, rectangle);CGContextStrokePath(context);
*//*用红色填充了一段路径:CGContextMoveToPoint(context, 100, 100);
CGContextAddLineToPoint(context, 150, 150);
CGContextAddLineToPoint(context, 100, 200);
CGContextAddLineToPoint(context, 50, 150);
CGContextAddLineToPoint(context, 100, 100);
CGContextSetFillColorWithColor(context, [UIColor redColor].CGColor);
CGContextFillPath(context);
*//*填充一个蓝色边的红色矩形
CGContextSetLineWidth(context, 2.0);
CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);
CGRect rectangle = CGRectMake(60,170,200,80);
CGContextAddRect(context, rectangle);
CGContextStrokePath(context);
CGContextSetFillColorWithColor(context, [UIColor redColor].CGColor);
CGContextFillRect(context, rectangle);
*//*画弧
//弧线的是通过指定两个切点,还有角度,调用CGContextAddArcToPoint()绘制
CGContextSetLineWidth(context, 2.0);
CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);
CGContextMoveToPoint(context, 100, 100);
CGContextAddArcToPoint(context, 100,200, 300,200, 100);
CGContextStrokePath(context);
*//*
绘制贝兹曲线
//贝兹曲线是通过移动一个起始点,然后通过两个控制点,还有一个中止点,调用CGContextAddCurveToPoint() 函数绘制
CGContextSetLineWidth(context, 2.0);CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);CGContextMoveToPoint(context, 10, 10);CGContextAddCurveToPoint(context, 0, 50, 300, 250, 300, 400);CGContextStrokePath(context);
*//*绘制二次贝兹曲线CGContextSetLineWidth(context, 2.0);CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);CGContextMoveToPoint(context, 10, 200);CGContextAddQuadCurveToPoint(context, 150, 10, 300, 200);CGContextStrokePath(context);
*//*绘制虚线
CGContextSetLineWidth(context, 5.0);CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);CGFloat dashArray[] = {2,6,4,2};CGContextSetLineDash(context, 3, dashArray, 4);//跳过3个再画虚线,所以刚开始有6-(3-2)=5个虚点CGContextMoveToPoint(context, 10, 200);CGContextAddQuadCurveToPoint(context, 150, 10, 300, 200);CGContextStrokePath(context);
*/
/*绘制图片
NSString* imagePath = [[NSBundle mainBundle] pathForResource:@"dog" ofType:@"png"];
UIImage* myImageObj = [[UIImage alloc] initWithContentsOfFile:imagePath];
//[myImageObj drawAtPoint:CGPointMake(0, 0)];
[myImageObj drawInRect:CGRectMake(0, 0, 320, 480)];NSString *s = @"我的小狗";[s drawAtPoint:CGPointMake(100, 0) withFont:[UIFont systemFontOfSize:34.0]];
*//*
NSString *path = [[NSBundle mainBundle] pathForResource:@"dog" ofType:@"png"];
UIImage *img = [UIImage imageWithContentsOfFile:path];
CGImageRef image = img.CGImage;
CGContextSaveGState(context);
CGRect touchRect = CGRectMake(0, 0, img.size.width, img.size.height);
CGContextDrawImage(context, touchRect, image);
CGContextRestoreGState(context);
*//*NSString *path = [[NSBundle mainBundle] pathForResource:@"dog" ofType:@"png"];
UIImage *img = [UIImage imageWithContentsOfFile:path];
CGImageRef image = img.CGImage;
CGContextSaveGState(context);CGContextRotateCTM(context, M_PI);
CGContextTranslateCTM(context, -img.size.width, -img.size.height);CGRect touchRect = CGRectMake(0, 0, img.size.width, img.size.height);
CGContextDrawImage(context, touchRect, image);
CGContextRestoreGState(context);*//*
NSString *path = [[NSBundle mainBundle] pathForResource:@"dog" ofType:@"png"];
UIImage *img = [UIImage imageWithContentsOfFile:path];
CGImageRef image = img.CGImage;CGContextSaveGState(context);CGAffineTransform myAffine = CGAffineTransformMakeRotation(M_PI);
myAffine = CGAffineTransformTranslate(myAffine, -img.size.width, -img.size.height);
CGContextConcatCTM(context, myAffine);CGContextRotateCTM(context, M_PI);
CGContextTranslateCTM(context, -img.size.width, -img.size.height);CGRect touchRect = CGRectMake(0, 0, img.size.width, img.size.height);
CGContextDrawImage(context, touchRect, image);
CGContextRestoreGState(context);
*/
}

  

转载于:https://www.cnblogs.com/nonato/p/4554608.html

IOS Quartz 各种绘制图形用法---实现画图片、写文字、画线、椭圆、矩形、棱形等...相关推荐

  1. IOS Quartz 各种绘制图形用法---实现画图片、写文字、画线、椭圆、矩形、棱形等

    // Only override drawRect: if you perform custom drawing. // An empty implementation adversely affec ...

  2. ios Quartz 各种绘制图形用法

    摘要: CoreGraphics的功能非常强大,可以绘制各种图形:今天学习一下怎么绘制简单的点线面,记录学习. 一.导入coreGraphics.framework 二.绘制图形 1.绘制矩形 // ...

  3. 第二章、小实例,画字,画线,矩形,画图,动画(iOS学习笔记,从零开始。)

    源代码再此下载: http://download.csdn.net/detail/hherima/5108428 本博文主要讲如何绘制文字,绘制一条直线,绘制图片,给图片添加动画. 首先,创建一个Si ...

  4. 用python绘制图形_使用Python的turtle画炫酷图形

    例子一: import turtle t = turtle.Pen() turtle.bgcolor("black") sides=6 colors=["red" ...

  5. 计算机图形学画图形,计算机图形学(三种画线算法)(示例代码)

    第二章:光栅图形学算法 1.光栅显示器:光栅扫描式图形显示器简称光栅显示器,是画点设备,可看作是一个点阵单元发生器,并可控制每个点阵单元的亮度 2.由来:随着光栅显示器的出现,为了在计算机上处理.显示 ...

  6. Qt实现桌面画线、标记,流畅绘制,支持鼠标和多点触控绘制原创

    前言 经常会在网上直播讲课或者点评中看到可以在课件上或者桌面上进行画线标记划重点,其实实现并不难,原理就是在桌面上盖一个透明图层,然后根据鼠标点绘制曲线. 今天分享如何通过Qt的QGraphics体系 ...

  7. Qt实现桌面画线、标记,流畅绘制,支持鼠标和多点触控绘制

    前言 经常会在网上直播讲课或者点评中看到可以在课件上或者桌面上进行画线标记划重点,其实实现并不难,原理就是在桌面上盖一个透明图层,然后根据鼠标点绘制曲线. 今天分享如何通过Qt的QGraphics体系 ...

  8. iOS动画效果、绘制图形

    文章转载自:http://www.cnblogs.com/kenshincui/p/3972100.html 概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥 ...

  9. iOS - Quartz 2D 画板绘制

    1.绘制画板 1.1 绘制简单画板 PaintBoardView.h @interface PaintBoardView : UIView@end PaintBoardView.m @interfac ...

最新文章

  1. 2014 Super Training #8 C An Easy Game --DP
  2. java影像出租面向对象,Java中的面向对象 - zhiruochujian的个人空间 - OSCHINA - 中文开源技术交流社区...
  3. boost::fusion::count_if的用法测试程序
  4. Hibernate常见问题集锦
  5. 项目学生:使用AOP简化代码
  6. Hibernate里面session.get()和session.load()的区别
  7. sh脚本和bash脚本_在脚本中使用Bash陷阱
  8. Powershell有哪些用途
  9. ios开发之--令UITableView滚动到指定位置
  10. word敲空格文字不后退_聊聊Word中的几种缩进(中)
  11. python清理日志脚本_Python日志:如果在程序运行时删除了日志文件,则创建新的日志文件(RotatingFileHandler)...
  12. python萤火虫算法_萤火虫算法-python实现
  13. [SUCTF 2019]EasyWeb---无参数RCE
  14. (ONENET+阿里云+datav+node+js+MYSQL+STM32)基于ONENET的大数据可视化平台搭建
  15. 【转载】用reshacker轻松修改系统OEM信息
  16. BZOJ 3097: Hash Killer I
  17. 简约至上(交互设计四策略)
  18. 物联网卡充值续费仍无法使用,关键原因在这里!
  19. 实现“快准狠”交付——小米HR研发团队敏捷实践
  20. Spring框架快速入门(Spring超全面讲解)

热门文章

  1. 【UI 设计】PhotoShop基础工具 -- 移动工具
  2. 015污点修复画笔工具,修复画笔工具,修补工具,内容感知移动工具和红眼工具...
  3. Symbian日薄西山了么
  4. 浏览器2014官方下载
  5. win10网络连接不上问题解决方法
  6. 阿里云发布超级智能ET大脑 成全球产业AI拓荒者
  7. 微信小程序-提交表单成功弹窗提示
  8. 折腾Transmission实现固定IP服务器BT做种教程
  9. anaconda下载python的库_Anaconda下载及安装及查看安装的Python库用法
  10. 打开小猫咪之后,国内的网站打不开了,怎么办。原因是dns解析出了问题