CoreGraphics简单绘图

一、导入coreGraphics.framework

二、绘制图形

1、绘制矩形

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

// 绘制矩形

- (void)drawRectangle {

    // 定义矩形的rect

    CGRect rectangle = CGRectMake(100, 290, 120, 25);

    

    // 获取当前图形,视图推入堆栈的图形,相当于你所要绘制图形的图纸

    CGContextRef ctx = UIGraphicsGetCurrentContext();

    

    // 在当前路径下添加一个矩形路径

    CGContextAddRect(ctx, rectangle);

    

    // 设置试图的当前填充色

    CGContextSetFillColorWithColor(ctx, [UIColor blackColor].CGColor);

    

    // 绘制当前路径区域

    CGContextFillPath(ctx);

}

2、绘制椭圆

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

// 绘制椭圆

- (void)drawEllipse {

    // 获取当前图形,视图推入堆栈的图形,相当于你所要绘制图形的图纸

    CGContextRef ctx = UIGraphicsGetCurrentContext();

    

    // 定义其rect

    CGRect rectangle = CGRectMake(10, 100, 300, 280);

    

    // 在当前路径下添加一个椭圆路径

    CGContextAddEllipseInRect(ctx, rectangle);

    

    // 设置当前视图填充色

    CGContextSetFillColorWithColor(ctx, [UIColor orangeColor].CGColor);

    

    // 绘制当前路径区域

    CGContextFillPath(ctx);

}

3、绘制三角形

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

// 绘制三角形

- (void)drawTriangle {

    // 获取当前图形,视图推入堆栈的图形,相当于你所要绘制图形的图纸

    CGContextRef ctx = UIGraphicsGetCurrentContext();

    

    // 创建一个新的空图形路径。

    CGContextBeginPath(ctx);

    

    /**

     *  @brief 在指定点开始一个新的子路径 参数按顺序说明

     *

     *  @param c 当前图形

     *  @param x 指定点的x坐标值

     *  @param y 指定点的y坐标值

     *

     */

    CGContextMoveToPoint(ctx, 160, 220);

    

    /**

     *  @brief 在当前点追加直线段,参数说明与上面一样

     */

    CGContextAddLineToPoint(ctx, 190, 260);

    CGContextAddLineToPoint(ctx, 130, 260);

    

    // 关闭并终止当前路径的子路径,并在当前点和子路径的起点之间追加一条线

    CGContextClosePath(ctx);

    // 设置当前视图填充色

    CGContextSetFillColorWithColor(ctx, [UIColor blackColor].CGColor);

    

    // 绘制当前路径区域

    CGContextFillPath(ctx);

}

4、绘制曲线

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

// 绘制曲线

- (void)drawCurve {

    // 获取当前图形,视图推入堆栈的图形,相当于你所要绘制图形的图纸

    CGContextRef ctx = UIGraphicsGetCurrentContext();

    

    // 创建一个新的空图形路径。

    CGContextBeginPath(ctx);

    

    /**

     *  @brief 在指定点开始一个新的子路径 参数按顺序说明

     *

     *  @param c 当前图形

     *  @param x 指定点的x坐标值

     *  @param y 指定点的y坐标值

     *

     */

    CGContextMoveToPoint(ctx, 160, 100);

    

    /**

     *  @brief 在指定点追加二次贝塞尔曲线,通过控制点和结束点指定曲线。

     *         关于曲线的点的控制见下图说明,图片来源苹果官方网站。参数按顺序说明

     *  @param c   当前图形

     *  @param cpx 曲线控制点的x坐标

     *  @param cpy 曲线控制点的y坐标

     *  @param x   指定点的x坐标值

     *  @param y   指定点的y坐标值

     *

     */

    CGContextAddQuadCurveToPoint(ctx, 160, 50, 190, 50);

    

    // 设置图形的线宽

    CGContextSetLineWidth(ctx, 20);

    

    // 设置图形描边颜色

    CGContextSetStrokeColorWithColor(ctx, [UIColor brownColor].CGColor);

    

    // 根据当前路径,宽度及颜色绘制线

    CGContextStrokePath(ctx);      

}

曲线描绘示意图

5、绘制圆形

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

//以指定中心点绘制圆弧

- (void)drawCircleAtX:(float)x Y:(float)y {

    

    // 获取当前图形,视图推入堆栈的图形,相当于你所要绘制图形的图纸

    CGContextRef ctx = UIGraphicsGetCurrentContext();

    

    // 创建一个新的空图形路径。

    CGContextSetFillColorWithColor(ctx, [UIColor blackColor].CGColor);

    

    /**

     *  @brief 在当前路径添加圆弧 参数按顺序说明

     

     *  @param c           当前图形

     *  @param x           圆弧的中心点坐标x

     *  @param y           曲线控制点的y坐标

     *  @param radius      指定点的x坐标值

     *  @param startAngle  弧的起点与正X轴的夹角,

     *  @param endAngle    弧的终点与正X轴的夹角

     *  @param clockwise   指定1创建一个顺时针的圆弧,或是指定0创建一个逆时针圆弧

     *

     */

    CGContextAddArc(ctx, x, y, 20, 0, 2 * M_PI, 1);

    

    //绘制当前路径区域

    CGContextFillPath(ctx);

}

三、在drawRect中调用

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

- (void)drawRect:(CGRect)rect {

    // 绘制椭圆

    [self drawEllipse];

    

    // 绘制三角

    [self drawTriangle];

    

    // 绘制矩形

    [self drawRectangle];

    

    // 绘制曲线

    [self drawCurve];

    

    // 绘制圆形

    [self drawCircleAtX:120 Y:170];

    [self drawCircleAtX:200 Y:170];

    

}

效果如图:

时间: 2024-10-16 23:01:07

CoreGraphics简单绘图的相关文章

学习简单绘图DrawNode

学习简单绘图DrawNode 尊重原创:http://cn.cocos2d-x.org/tutorial/show?id=1738 绘图的方式有两种: 使用OpenGL的绘图原语DrawPrimitives. 使用DrawNode. 本节中主要学习使用DrawNode来进行图形的绘制. [小知识] 分段数:即绘制曲线一般都是通过绘制“样条曲线”来实现,而分段数即样条段数. 二次贝塞尔曲线:起点终点之间的一条抛物线,利用一个控制点来控制抛物线的形状. 三次贝塞尔曲线:起点终点之间,利用两个控制点来

【4】 简单绘图(二)

在上一篇里已经向大家介绍了如何使用GDI+绘制简单的图像,这一篇继续向大家介绍其它一些绘图知识. 1.首先我们来看下上一篇中我们使用过的Pen. Pen的属性主要有: Color(颜色),DashCap(短划线终点形状),DashStyle(虚线样式),EndCap(线尾形状), StartCap(线头形状),Width(粗细)等. 我们可以用Pen 来画虚线,带箭头的直线等 Pen p = new Pen(Color.Blue, 5);//设置笔的粗细为,颜色为蓝色 Graphics g =

Android实战简易教程-第三枪(实现简单绘图组件)

首先我们要了解触摸事件(OnTouchListener)指的是当用户接触到屏幕之后所产生的一种事件形式,而当用户在屏幕上划过时,可以使用触摸事件取得用户当前的坐标. 一.坐标显示 在实现画图功能之前,我们先利用触摸事件获得当前触摸的坐标. main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.c

2019-04-15 Python之利用matplotlib和numpy的简单绘图

环境:win10家庭版, Anocada的 Spyder 一.简单使用 使用函数 plt.polt(x,y,label,color,width) 根据x,y 数组 绘制直,曲线 import numpy as np #引用numpy库,从新命名它为np(以后用np代替numpy,简洁) import matplotlib.pyplot as plt import matplotlib x = np.linspace(0,6,100) #在[0,6]平均分为100个print(x) #输出查看一下

turtle的简单绘图

接触python,就发现python是一门很有趣的课程.往往只需要利用几行简单的代码,就能绘制出简单漂亮的图案.毫不夸张的说,掌握好turtle库,就能绘制一整片蓝图.有时候,当我们遇到一些对称图形的时候,利用 for   in  循环语句,也能达到很好的效果.我们先了解一些关于turtle库的基本函数. turtle库的基本函数: 一.绘图窗口设置命令 ①turtle.setup(width,height,starty,starty)  注:(starty,starty)指的是绘图窗体左上角位

SAS简单绘图

利用sas gplot/gchart 模块,可以完成简单统计图的绘制. 1.条形图.环形图.饼图等等: proc gchart data=XXXXX; vbar varname; run; 这个过程包含若干选项,注意一点的是subgroup 和group选项的区别,subgroup不分开列,而group则对不同的组分开绘制: 2.散点图.线图等等 proc gplot data=xxxxx; plot y*x; run; 当同一张表上包含若干不同的线时,判断这若干条线是否共用同一坐标系.如果确实

C# GDI+简单绘图

一.使用Pen画笔 Pen的主要属性有: Color(颜色),DashCap(短划线终点形状),DashStyle(虚线样式),EndCap(线尾形状), StartCap(线头形状),Width(粗细)等. 我们可以用Pen 来画虚线,带箭头的直线等. Pen p = new Pen(Color.Blue, 5); Graphics g = this.CreateGraphics(); //这里在load中不行,在Paint中可以? //画虚线 p.DashStyle = System.Dra

数据分析,简单绘图

import matplotlib.pylab as pb #matplotlib模块下pylab可以绘制相应的散点图,折线图,直线图,子图 #而subplot是绘制简单的子图,他是根据你提供相应的数据所显示数据的区间 pb.subplot(2,2,2)x=[1,3,5,7,9]y=[2,4,6,8,10]pb.plot(x,y)pb.subplot(2,1,2)x1=[1,5,7,4,3]y1=[2,8,9,6,7]pb.plot(x1,y1)pb.subplot(2,2,1)x2=[8,6,

iOS中绘图

UIBezierPath:可以创建基于矢量的路径,是Core Graphics框架关于path的一个封装,可以定义简单的形状,如椭圆或者矩形,或者有多个直线和曲线段组成的形状. 实例化方法: 1.根据一个矩形画曲线 + (UIBezierPath *)bezierPathWithRect:(CGRect)rect 2.根据矩形框的内切圆画曲线 + (UIBezierPath *)bezierPathWithOvalInRect:(CGRect)rect 3.根据矩形画带圆角的曲线 + (UIBe