Quartz2D二维画图引擎
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二维画图引擎的更多相关文章
- Quartz2D-二维画图引擎 、自己定义UI控件
// // MyDraw.m // 绘图 #import "MyDraw.h" @implementation MyDraw //Quartz2D 是一个二维绘图引擎 //自己定义 ...
- Agg vs. Cairo 二维绘图引擎之比较和选择 .
Agg vs. Cairo 二维绘图引擎之比较和选择 cheungmine 当今时代对于作为二维图形软件开发者, 是幸运的.因为除了Windows GDI/GDI+之外,我们还有很多其他的选择.而且这 ...
- 微信二维码引擎OpenCV开源研究
<微信二维码引擎OpenCV开源研究> 一.编译和Test测试 opencv_wechat_qrcode的编译需要同时下载opencv(https://github.com/ ...
- 简单又炫酷的two.js 二维动画教程
前 言 S N 今天呢给大家介绍一个小js框架,Two.JS.其实在自己学习的过程中并没有找到合适的教程,所以我这种学习延迟的同学是有一定难度的,然后准备给大家整理一份,简单易懂的小教程 ...
- 什么是二维数组?二维遍历?Java二维数组制作图片迷宫 使用如鹏游戏引擎制作窗口界面 附带压缩包下载,解压后双击start.bat启动
什么是二维数组? 数组当中放的还是数组 int [][] arr=new int[3][2]; 有3个小箱子,每个箱子2个格子. 看结果? int [][] arr=new int[3][2]; Sy ...
- C#生成带logo的二维码
带logo的二维码生成分为两步骤:首先根据输入的内容生成二维码图片,然后读取本地的logo图片,通过图片处理生成带logo的二维码. 生成的二维码效果如下: 下面直接贴出二维码生成类 QRCode ...
- openGL实现二维图形和三维图形
openGL是一个强大的底层图形库,其命令最初的时候使用C语言实现的.openGL定义了一个图形程序接口,常用于制作处理三维图像,功能强大,调用方便,在图像处理十分受欢迎. 实现图形主要使用的是ope ...
- [.NET]二维码生成
又好一段时间没有写写东西了,继续回归原来的模式,多做记录,最近要实现个unity的二维码方面的功能,首先就要解决生成二维码的问题,这个倒是有这方面的组件,然后我通过强大的反编译工具Reflector( ...
- 使用jquery-qrcode生成二维码
一.使用jquery-qrcode生成二维码 先简单说一下jquery-qrcode,这个开源的三方库(可以从https://github.com/jeromeetienne/jquery-qrcod ...
随机推荐
- Object源码分析(二)
第五个方法:protected native Object clone() throws CloneNotSupportedException; 源码简介: clone方法首先会判对象是否实现了Clo ...
- linux下使用bcp备份sybase数据
命令|数据库名|表名|导出到|文件名|格式|sybase服务名|数据库登录名 |字符集 bcp dbname..tablename out filename -n -Sgfdmhk -UISISMan ...
- ItemArray DataRow对象的RowState和DataRowVersion属性特点
DataTable.Rows[i].ItemArray DataTable.Rows表示所有行的集合DataTable.Rows[i]加上下标表示其中某一行DataTable.Rows[i].Item ...
- 常用的CSS命名
头:header 内容:content/container 尾:footer 导航:nav 侧栏:sidebar 栏目:column 页面外围控制整体佈局宽度:wrapper 左右中:left rig ...
- C++调用matlab编程
C++调用Matlab,实在是不得已的方法.原文链接: http://kylen314.blog.com/2012/12/11/matlab_for_cplusplus/ 这是个很善良的博客,只出现 ...
- AndroidStudio/Intellij 快捷键
说明 三年来一直使用Eclipse作为自己的IDE, 现在是时候走出自己的safety zone, 开始使用传说中的Intellij了. Eclipse/Intellij IDE环境为: OS X 1 ...
- RabbitMQ学习之ConntectionFactory与Conntection的认知
在发送和接收消息重要的类有:ConnectionFactory, Connection,Channel和 QueueingConsumer. ConntectionFactory类是方便创建与AMQP ...
- promise待看文档备份
http://swift.gg/2017/03/27/promises-in-swift/ http://www.cnblogs.com/feng9exe/p/9043715.html https:/ ...
- 面试官:为什么mysql不建议执行超过3表以上的多表关联查询?
概述 前段时间在跟其他公司DBA交流时谈到了mysql跟PG之间在多表关联查询上的一些区别,相比之下mysql只有一种表连接类型:嵌套循环连接(nested-loop),不支持排序-合并连接(sort ...
- PHP Base64 加密 & 解密
<?php 加密: $cany = 'getshell.top'; #定义要加密的字符串 echo base64_encode($cany); #输出加密后的字符串 解密: $cany = 'Z ...