#import "ViewController.h"

#import "DrawView.h"

@interface ViewController ()

@property (weak, nonatomic) IBOutlet UIImageView *imageView;

- (IBAction)doTouchButton:(id)sender;

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

DrawView *view=[[DrawView alloc]initWithFrame:self.view.frame];

view.backgroundColor =[UIColor whiteColor];

//    [self.view addSubview:view];//去掉注释后,显示绘图

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

- (IBAction)doTouchButton:(id)sender {

//小鸡走五角星

CGMutablePathRef startPath=CGPathCreateMutable();//创建一个路径

CGPathMoveToPoint(startPath, NULL, 160, 100);

CGPathAddLineToPoint(startPath, NULL, 220, 280);

CGPathAddLineToPoint(startPath, NULL, 60, 170);

CGPathAddLineToPoint(startPath, NULL, 260, 170);

CGPathAddLineToPoint(startPath, NULL, 100, 280);

CGPathAddLineToPoint(startPath, NULL, 160, 100);

CAKeyframeAnimation *animation=[CAKeyframeAnimation  animationWithKeyPath:@"position"];

animation.duration=5.0;//设置动画时间

[animation setPath:startPath];//设置路径

[_imageView.layer addAnimation:animation forKey:@"position"];

}

@end

/********************************************************/

//

//  DrawView.h

//  IOS绘图0817

//

//  Created by 张艳锋 on 15/8/17.

//  Copyright (c) 2015年 张艳锋. All rights reserved.

//

#import <UIKit/UIKit.h>

@interface DrawView : UIView

@end

/********************************************************/

//

#import "DrawView.h"

@implementation DrawView

// Only override drawRect: if you perform custom drawing.

// An empty implementation adversely affects performance during animation.

- (void)drawRect:(CGRect)rect {

// Drawing code

CGContextRef context=UIGraphicsGetCurrentContext();//绘制图形上下文

CGContextSetLineWidth(context, 2.0);//设直线条宽度

[[UIColor redColor]setStroke];//设置线条颜色

CGPoint point1=CGPointMake(160, 100);//上

CGPoint point2=CGPointMake(60, 170);//左

CGPoint point3=CGPointMake(260, 170);//右

CGPoint point4=CGPointMake(100, 280);//下左

CGPoint point5=CGPointMake(220, 280);//下右

CGContextMoveToPoint(context, point1.x, point1.y);

CGContextAddLineToPoint(context, point5.x, point5.y);

CGContextAddLineToPoint(context, point2.x, point2.y);

CGContextAddLineToPoint(context, point3.x, point3.y);

CGContextAddLineToPoint(context, point4.x, point4.y);

//    CGContextAddLineToPoint(context, point1.x, point1.y);

CGContextClosePath(context);//闭合区域函数

//    CGContextStrokePath(context);

[[UIColor orangeColor]setFill];//设置填充颜色

CGContextDrawPath(context, kCGPathFillStroke);//进行描绘函数

//    kCGPathFill,//无边线,包围区域全部填充

//    kCGPathEOFill,//无边线,包围区域重合部分不填充

//    kCGPathStroke,//只显边线,不填充

//    kCGPathFillStroke,//填充又显示边线

//    kCGPathEOFillStroke//有边线包围区域重合部分不填充

//正方形

//CGContextAddRect矩形

//CGContextAddEllipseInRect椭圆 圆

CGContextSetRGBStrokeColor(context, 1, 0, 0, 1);//红色

CGContextSetLineWidth(context, 1.5);

CGContextAddRect(context, CGRectMake(100, 60, 80, 80));//正方形

CGContextAddRect(context, CGRectMake(200, 60, 100, 200));//矩形

CGContextAddEllipseInRect(context,CGRectMake(50, 100, 100, 60));//椭圆

CGContextAddEllipseInRect(context,CGRectMake(50, 200, 100, 100));//圆

CGContextStrokePath(context);

}

IOS绘图的更多相关文章

  1. 论文第4章:iOS绘图平台的实现

    面向移动设备的矢量绘图平台设计与实现 Design and Implementation of Mobile Device-oriented Vector Drawing Platform 引用本论文 ...

  2. iOS绘图教程 (转,拷贝以记录)

    本文是<Programming iOS5>中Drawing一章的翻译,考虑到主题完整性,在翻译过程中我加入了一些书中没有涉及到的内容.希望本文能够对你有所帮助. 转自:http://www ...

  3. iOS绘图教程

    本文是<Programming iOS5>中Drawing一章的翻译,考虑到主题完整性,翻译版本中加入了一些书中未涉及到的内容.希望本文能够对你有所帮助.(本文由海水的味道翻译整理,转载请 ...

  4. iOS绘图框架CoreGraphics分析

    由于CoreGraphics框架有太多的API,对于初次接触或者对该框架不是十分了解的人,在绘图时,对API的选择会感到有些迷茫,甚至会觉得iOS的图形绘制有些繁琐.因此,本文主要介绍一下iOS的绘图 ...

  5. iOS绘图系统UIKit与Core Graphics

    概述 iOS主要的绘图系统有UIKit,Core Graphics,Core Animation,Core Image,Open GL等,本片博文主要介绍UIKit与Core Graphics的绘图系 ...

  6. IOS 绘图教程Quartz2D

    http://www.cocoachina.com/industry/20140115/7703.html http://www.cnblogs.com/wendingding/p/3803020.h ...

  7. ios绘图时的坐标处理

    在iOS中,进行绘图操作时,一般主要是在UIView:drawRect中调用 UIGraphicsBeginImageContextWithOptions等一系列函数,有时候直接画图就行,比如UIIm ...

  8. iOS绘图UIBezierPath 和 Core Graphics框架

    前言 iOS系统本身提供了两套绘图的框架,即UIBezierPath 和 Core Graphics.而前者所属UIKit,其实是对Core Graphics框架关于path的进一步封装,所以使用起来 ...

  9. iOS绘图—— UIBezierPath 和 Core Graphics

    前言 iOS系统本身提供了两套绘图的框架,即UIBezierPath 和 Core Graphics.而前者所属UIKit,其实是对Core Graphics框架关于path的进一步封装,所以使用起来 ...

随机推荐

  1. Don't Starve,好脚本,好欢乐

    最近玩了shank系列的开发公司新出的游戏饥荒(Don't Starve),容量很小,200MB左右,所以可以归类为小游戏..但是游戏性却是相当的高,游戏中各物件的交互出奇的丰富和复杂,我相信该游戏9 ...

  2. 设备文件的创建mknod

    设备文件是通过mknod命令来创建的.其命令格式为: mknod [OPTION]... NAME TYPE [MAJOR MINOR] TYPE取值: 主设备号和次设备号两个参数合并成一个16位的无 ...

  3. reactor官方文档译文(1)Reactor简介

    原文地址:http://projectreactor.io/docs/reference/ Reactor简介 Reactor是一个基础库,用在构建实时数据流应用.要求有容错和低延迟至毫秒.纳秒.皮秒 ...

  4. Anatomy of the Linux kernel--转

    ref:http://www.ibm.com/developerworks/linux/library/l-linux-kernel/?S_TACT=105AGX52&S_CMP=cn-a-l ...

  5. 如何简单便捷的搭建一个网站 - 基于Django

    一.所需工具以及相关环境 1. 系统:win7,win8.1,win10(亲测可用 - 本文为win7,64位) 2. 本文使用的版本是: 1)python-2.7.11[百度云盘分享:http:// ...

  6. G - Not so Mobile

    G - Not so Mobile Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu     Des ...

  7. Java基础知识强化之IO流笔记76:NIO之 Channel(通道)之间的数据传输

    1. 在Java NIO中,如果两个通道中有一个是FileChannel,那你可以直接将数据从一个channel(译者注:channel中文常译作通道)传输到另外一个channel. (1)trans ...

  8. Android小项目之六 apk下载

    ------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点 ...

  9. python用装饰器实现缓存函数执行结果

    根据调用的函数名和调用的参数,对函数的结果进行缓存,下次执行的时候就不用重复计算   可以用装饰器来实现   import time import hashlib import pickle cach ...

  10. 判断当前是否运行于Design Mode

    在使用Visual Studio设计XAML时,设计器运行在[设计时]状态.VS在内部运行这些代码,帮你把界面的类真实效果展示出来.一般情况下也不会有什么问题,但是当代码中存在外部资源时,XAML可能 ...