Quartz2D二维画图引擎

这个二维画图引擎的功能很强大

一般苹果公司xcode 提供给我们的一些UI控件不能满足我们的需求

所以我们会自己定义控件

xcode 提供的全部控件都是由这个画图引擎画出来的

我们能够自己定义一些控件。完毕我们想要完毕的一些特定的功能

从而解决一些系统自己定义控件实现不了的功能

1.基本图形绘制

* 线段(线宽、线段样式)

* 矩形(空心、实心、颜色)

* 三角形、梯形等形状

* 椭圆\圆

* 圆弧

* 文字绘制

* 图片绘制(pattern)

* 图形上下文栈

以下是简单的 三角形和矩形的绘制

图形的绘制是用纯C写出来的。没有面向对象的思想

所以大家理解起来一定要区分!

//
// MyDraw.m
// 绘图 @implementation MyDraw //Quartz2D 是一个二维绘图引擎
//自己定义UI控件
//裁剪图片 - (void)drawRect:(CGRect)rect { draw4Rect(); } void draw4Rect()
{
//获得图形上下文
CGContextRef ctx = UIGraphicsGetCurrentContext(); //绘图形
CGContextAddRect(ctx, CGRectMake(10, 10, 100, 100)); //绘制图形
//CGContextStrokePath(ctx); //实的图形
CGContextFillPath(ctx);
}
void drawTriangle()
{ // Drawing code
//1.获得图形上下文
CGContextRef ctx = UIGraphicsGetCurrentContext(); //2.拼接图形
CGContextMoveToPoint(ctx, 10, 10); //加入一条线段到
CGContextAddLineToPoint(ctx, 100, 100); CGContextAddLineToPoint(ctx, 150, 40); //CGContextAddLineToPoint(ctx, 10, 10); //连接起点和终点
CGContextClosePath(ctx);
//CGContextMoveToPoint(ctx, 20, 20); //3.渲染显示到view 上面
//以空心的形式画出来
CGContextStrokePath(ctx);
} @end

Quartz2D二维画图引擎的更多相关文章

  1. Quartz2D-二维画图引擎 、自己定义UI控件

    // // MyDraw.m // 绘图 #import "MyDraw.h" @implementation MyDraw //Quartz2D 是一个二维绘图引擎 //自己定义 ...

  2. Agg vs. Cairo 二维绘图引擎之比较和选择 .

    Agg vs. Cairo 二维绘图引擎之比较和选择 cheungmine 当今时代对于作为二维图形软件开发者, 是幸运的.因为除了Windows GDI/GDI+之外,我们还有很多其他的选择.而且这 ...

  3. 微信二维码引擎OpenCV开源研究

    <微信二维码引擎OpenCV开源研究> 一.编译和Test测试        opencv_wechat_qrcode的编译需要同时下载opencv(https://github.com/ ...

  4. 简单又炫酷的two.js 二维动画教程

      前  言 S     N 今天呢给大家介绍一个小js框架,Two.JS.其实在自己学习的过程中并没有找到合适的教程,所以我这种学习延迟的同学是有一定难度的,然后准备给大家整理一份,简单易懂的小教程 ...

  5. 什么是二维数组?二维遍历?Java二维数组制作图片迷宫 使用如鹏游戏引擎制作窗口界面 附带压缩包下载,解压后双击start.bat启动

    什么是二维数组? 数组当中放的还是数组 int [][] arr=new int[3][2]; 有3个小箱子,每个箱子2个格子. 看结果? int [][] arr=new int[3][2]; Sy ...

  6. C#生成带logo的二维码

    带logo的二维码生成分为两步骤:首先根据输入的内容生成二维码图片,然后读取本地的logo图片,通过图片处理生成带logo的二维码. 生成的二维码效果如下: 下面直接贴出二维码生成类   QRCode ...

  7. openGL实现二维图形和三维图形

    openGL是一个强大的底层图形库,其命令最初的时候使用C语言实现的.openGL定义了一个图形程序接口,常用于制作处理三维图像,功能强大,调用方便,在图像处理十分受欢迎. 实现图形主要使用的是ope ...

  8. [.NET]二维码生成

    又好一段时间没有写写东西了,继续回归原来的模式,多做记录,最近要实现个unity的二维码方面的功能,首先就要解决生成二维码的问题,这个倒是有这方面的组件,然后我通过强大的反编译工具Reflector( ...

  9. 使用jquery-qrcode生成二维码

    一.使用jquery-qrcode生成二维码 先简单说一下jquery-qrcode,这个开源的三方库(可以从https://github.com/jeromeetienne/jquery-qrcod ...

随机推荐

  1. devenv.exe 编译Solution

    Build https://docs.microsoft.com/en-us/visualstudio/ide/reference/build-devenv-exe Builds a solution ...

  2. hdu 1002(大数)

    A + B Problem II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  3. day63-webservice 08.在web项目中配置带有接口的webservice服务

    这个是配置带有接口的WebService的服务. http://localhost:8080/cxf-web-server/service 带有接口的实现类也给它做好了.jaxws:endpoint是 ...

  4. html5之文件操作

    用来把文件读入内存,并且读取文件中的数据.FileReader接口提供了一个异步API,使用该API可以在浏览器主线程中异步访问文件系统,读取文件中的数据.到目前文职,只有FF3.6+和Chrome6 ...

  5. ADO.NET改进防注入

    static void Main1(string[] args) { //用户输入一个需要查询的条件 car表 Console.WriteLine("请输入"); string c ...

  6. 洛谷P2455 [SDOI2006]线性方程组(高斯消元)

    题目描述 已知n元线性一次方程组. 其中:n<=50, 系数是[b][color=red]整数<=100(有负数),bi的值都是整数且<300(有负数)(特别感谢U14968 mmq ...

  7. Array.of()和Array()区别

    Array.of方法用于将一组值,转换为数组. Array.of(3, 11, 8) // [3,11,8] Array.of(3) // [3] Array.of(3).length // 1 这个 ...

  8. jQuery基本选择器模块(二)

    选择器模块 1.push方法的兼容性(了解) 问题:IE8不支持aplly方法中的第二个参数是 伪数组 目标:实现 push 方法的浏览器兼容性问题 var push = [].push; try { ...

  9. 7) 十分钟学会android--Activity的生命周期之暂停与恢复

    在正常使用app时,前端的activity有时会被其他可见的组件阻塞(obstructed),从而导致当前的activity进入Pause状态.例如,当打开一个半透明的activity时(例如以对话框 ...

  10. DevExpress 如何读取当前目录下文件,加载至grid

    DBFileName=DevExpress.Utils.FileHelper.FindingFileName(Appliaction.StartupPath,"Data\\Product&g ...