Core Graphics框架 一个让程序猿成为视觉设计师的框架
视觉设计专业计算机软件特色课程模式探索与实践——以CorelDRAW课程教学为例

和趣味性 , 重复枯燥 的练 习不仅磨灭学 生的学习积极 性 , 也扼
杀 了学 生 的创 造 力 ; 三 是 学 习效 果 反 馈 缺 乏 及 时 性 和 针 对 性 ,
没有 因材施教的课堂不能保证教学 的质量和效率 。
三 、视 觉设计专 业的计算 机软件特 色课程模式研
究—— 以 C o r e l D R A W 课 程教 学 为 例
D R A W课 程教学 ,应将这些设计类别需要 用到的计算机辅助 领域作为教学重点 ,用 8 0 %的课 程时间来 熟练掌握 视觉设计 专业辅助设计 常用 到 2 0 %的重点知识 ,并 将后 续专业学 习的 实际设计项 目作为课堂练 习和考核的重点内容 。
2 . 渐层 型课 程 模 式 遵 循 渐 进 规 律
践
反馈学习效果 , 这利于调动学生学 习积极性 、 有利于教师掌握
学 生 实 际 学 习 能力 来 与 学 生 开 展 良性 互 动 、有 利 于 落 实 学 生
“ 渐层型课程 ” 是 指在本专业计 算机软件教学 中 , 教 师 引
导学生进行循序渐进不 同层次 的迁移应用 和绘制要求 ,其理
根 据 教 学 中存 在 的 问 题 进 行 课 程 模 式 的思 考 探 索 ,认 为
延伸 自学 的教学 阶段要 善于创设 自学延伸 的学习情境 。
具体措施有 : 在 自学 基 础 上 进 行 举 一 反 三 的延 伸 学 习 ; 也 可 以
课程教学第一个关 键点是要有专业针对性 ,要根据视觉设计
题 C o r e l D R A W 是一款专业的矢量图形绘制软件 ,有强 大的 矢量 图形绘制功能和便 捷的图文编排工具 。 目前课 堂教学 中 常见 的问题主要集 中在 ,一是没有根据所学专业详 略得 当地 安排教学 内容 , 每种工具命令都泛泛 而讲 , 不利 于学生对重点 知识 的熟练掌握和深入探究 ;二是课堂练 习安排没有层 次性
2024版CoreDraw13教程

符号库管理 为了方便管理和使用符号,用户可以对符号库进行整理。 例如,可以将常用的符号添加到收藏夹中,或者按照特定 的分类方式对符号进行排序。
交互式工具应用实例
保存选项
在保存文件时,用户可以根据需要设置不同的保存选项, 如版本兼容性、颜色模式、压缩等。这些选项可以在“保 存”或“另存为”对话框中找到。
批量转换
对于需要批量转换文件的情况,CoreDraw13提供了批量处 理功能,用户可以一次性转换多个文件,提高工作效率。
打印参数配置方法
打印机设置
在打印前,用户需要先选择正确的打印机并设置相关参数,如纸张大小、打印质量等。 这些设置可以在“文件”菜单中的“打印”选项中找到。
素对齐到同一水平或垂直线上。
03
动态标注与测量
CoreDraw支持动态标注和测量功能,可以在绘图过程中实时显示图形
的尺寸和角度信息。这对于需要精确控制图形大小的场景非常有用。
05 文件输出与打印 设置教程
文件格式转换及保存选项
文件格式转换
CoreDraw13支持多种文件格式转换,如CDR、AI、PDF、 EPS、SVG等。用户可以通过“文件”菜单中的“另存为” 选项,选择目标格式进行转换。
工具栏功能
工具栏提供多种常用工具,如选择工具、形状工具、填充工具、 文本工具等,方便用户进行图形设计和编辑操作。
02 图形绘制与编辑 技巧
基本图形绘制方法
01
02
03Leabharlann 04矩形工具选择矩形工具,在画布上单击 并拖动以创建矩形。按住Shift
CorelDRAW详解

收集资料:图形、图象、文本
创 意 与 构 思
手绘
制作:工具、手法 出图:装裱、覆膜、悬挂 输入:扫描、数码摄影、存储设备
电脑
整合:软件、硬件 输出:输出方式、输出色彩、输出格式
输入
1、扫描仪
通常设计师所需的图片,印刷品资料 均可通过扫描仪进行输入,平面设计 所常用的扫描仪称之为平板扫描仪
还有一种高精度扫描仪,通常只有在 印刷厂应用——滚筒式扫描仪
五、删除虚设线工具 “ 删除虚设线工具”是 CorelDRAW 12 新增加的一个对 象形状编辑工具,用于删除相交对象中两个交叉点之间的 线段,从而产生新的图形形状。 (1)在 (形状工具) 组中选择 (删除虚设线工具)。 (2)移动鼠标到删除的线段处,此时删除虚设线工具的图 标会竖立起来。 (3) 单击鼠标即可删除选定的线段。 (4)如果想要同时删除多个线段,可拖动鼠标在这些线段 附近绘制出一个范围选取虚线框后,释放鼠标即可。
三、艺术笔工具
艺术笔工具是 一种具有固定或可变宽度及形 状的特殊的画笔工具。利用它可以创建具有特殊 艺术效果的线段或图案。 1、基本操作方法: 提供了 5 个功能各异的笔形按钮及其功能选 项设臵。选择了笔形并设臵号宽度等选项后,在 绘图页面中单击并拖动鼠标,即可绘制出丰富多 采的图案效果。
(1)预设按钮
练习关键: 知道该在什么地 方放臵节点,还 有怎样调节方向 线。
第三章 对象编辑工具
第三章 对象编辑工具
一、刻刀工具
可以将对象分割成多个部分,但不会使对象 的任何一部分消失。
剪切时自动闭合按钮:
不选择此按钮,可以将对象切割成相互独立 的非封闭的曲线,且原有的填充效果将消失。 选择此按钮,可以将被切断后的对象自动生 成封闭曲线,并保留填充属性。
C++轻量级界面开发框架ImGUI介绍小结

C++轻量级界⾯开发框架ImGUI介绍⼩结⽬录ImGUI简介ImGUI的界⾯实现技术选型如何使⽤ImGUI 如果从事过C++ Windows客户端开发,⼤家对MFC、Qt、DuiLib等各种DirectUI应该有了解,本篇给⼤家介绍⼀个超级轻量级的C++开源跨平台图形界⾯框架ImGUI.ImGUI简介 ImGUI⼜称为Dear ImGui,它是与平台⽆关的C++轻量级跨平台图形界⾯库,没有任何第三⽅依赖,可以将ImGUI的源码直接加到项⽬中使⽤,也可以编译成dll, ImGUI使⽤DX 或者OpenGL进⾏界⾯渲染,对于画⾯质量要求较⾼,例如客户端游戏,4k/8k视频播放时,⽤ImGUI是很好的选择,当然,你得⾮常熟悉DirectX或者OpenGL,不然就是宝剑在⼿,屠龙⽆⼒。
相对于Qt、MFC、DuiLib、SOUI等,ImGUI的拓展性更好,也更轻量级,当然对于开发者的要求也更⾼. 下载ImGUI代码后,⽤vs2019可以直接打开,编译,运⾏,sln路径如下:sln路径:imgui/examples/imgui_examples.sln 运⾏win32_dx12界⾯如下:ImGUI没有类似于Qt/MFC这种,可以拖拽控件进⾏搭建界⾯,ImGUI的所有控件都必须⼿写实现。
ImGUI的demo基本提供了所有控件、图表等的实现,源码也有,可以对照的学习。
关于ImGUI的详细介绍,可以参考github. 注意这段话This library is available under a free and permissive license, but needs financial support to sustain its continued improvements. In addition to maintenance and stability there are many desirable features yet to be added. If your company is using Dear ImGui, please consider reaching out.ImGUI的界⾯实现 基本控件:label、text、checkbox、slider窗体控件:树形控件、图⽚控件、ComboBox、列表控件、菜单栏等根据官⽅提供的demo来看,基本满⾜开发要求。
框架frame的名词解释

框架frame的名词解释框架(Frame)的名词解释在计算机科学中,框架(Frame)是一种软件结构,旨在支持和简化应用程序的开发过程。
框架提供了一组预定义的工具、函数库和准则,帮助开发人员更有效地构建和组织复杂的应用程序。
框架通常由一组相互关联的模块和组件组成,这些模块和组件在一定程度上会限制和指导开发人员的行为,旨在遵循某种特定的设计原则或模式。
框架提供了一种约定俗成的开发风格,使得多个开发者可以在同一个框架下协同工作,减少了代码的重复性和维护的复杂性。
框架的核心目标是为开发者提供一种标准化的、模块化的开发环境,从而提高开发效率和代码质量。
框架封装了大量的通用功能,如输入验证、数据持久化、用户认证等,开发者可以直接调用这些功能,而无需重新实现。
通过框架的模块化设计,开发者可以按需引入所需的功能模块,减少了不必要的工作量,提升了开发的效率。
框架还能够提供一种一致的架构和设计,使得开发者能够更容易地理解和维护代码。
框架往往基于某种特定的编程语言或开发平台,利用该语言或平台的特性和优势来支持应用程序的开发。
框架通常会定义一套规范和最佳实践,开发者在开发过程中必须遵循这些规范,以确保代码的质量和一致性。
一个好的框架不仅仅是一组库和工具的集合,更重要的是它所提供的设计原则和思想。
例如,MVC(Model-View-Controller)是一种常见的框架设计模式,它将应用程序分为模型(Model)、视图(View)和控制器(Controller)三个组件。
这种分层架构使得应用程序的各个组件可以相互独立地开发和扩展,提高了代码的可维护性和可测试性。
除了常见的桌面应用程序和Web应用程序框架,还有许多其他类型的框架,如游戏引擎框架、机器学习框架等。
这些框架往往针对特定的应用领域或问题领域,提供了更加专业化和高级的功能和工具。
总之,框架是一种为开发者提供了一种标准化的、模块化的开发环境的软件结构。
框架通过封装通用功能、提供一致的架构和设计、引入最佳实践等方式,帮助开发者提高开发效率、降低开发成本,并提升应用程序的质量和可维护性。
前端开发中常用的工具和框架

前端开发中常用的工具和框架随着互联网的快速发展,前端开发越来越成为一个热门职业。
作为前端开发者,学习一些常用的工具和框架无疑能提高工作效率和开发质量。
本文将介绍一些前端开发中常用的工具和框架,以供读者参考。
一、前端常用工具1.编辑器:Sublime Text/Visual Studio CodeSublime Text和Visual Studio Code是前端开发中最常用的编辑器之一。
它们都有很好的插件支持,可以大大提高开发的效率。
Sublime Text支持快捷键,可以快速定位到需要修改的代码;而Visual Studio Code则支持智能感知,可以快速帮助开发者完成代码的编写。
2.调试工具:Chrome DevToolsChrome DevTools是由Google Chrome开发的一款调试工具,可以用于调试HTML、CSS和JavaScript代码。
它支持多种调试方式,可以直观的显示代码的错误,并且提供了丰富的调试功能。
3.构建工具:Webpack/Gulp/GruntWebpack、Gulp和Grunt都是前端开发中常用的构建工具。
Webpack可以将多个JavaScript文件打包成一个文件,同时也支持将CSS文件、图片等文件打包在一起;Gulp和Grunt则更多地用于自动化构建,可以自动完成编译、压缩和打包等操作。
4.版本控制:GitGit是一种分布式版本控制系统,可以帮助开发者管理团队或个人编写的代码。
它可以跟踪代码的变化,保证代码的稳定性和可靠性。
二、前端常用框架1.前端框架:AngularJS/React/VueAngularJS、React和Vue都是常用的前端框架。
AngularJS是由Google开发的,它可以帮助开发者构建动态的Web应用;React是由Facebook开发的,它可以帮助开发者构建高性能的Web应用;Vue则是一种轻量级的框架,它可以帮助开发者构建交互式的Web应用。
第一讲 Coreldrew的概述
第一讲Coreldrew的概述一简介1.定义Coreldrew集合了图像编辑,图形抓取,位图转换,动画制作等具有使用价值的应用程序,构成了一个高级图形设计的软件包。
2.版本12,X3,X4,X5..二、应用1.平面设计(名片,标志,招贴,包装设计,贺卡,VI企业视觉识别系统)2.文字排版(报纸,杂志,产品说明,企业宣传材料)三、基础理论知识平面设计软件工作方式与原理分为:位图软件,矢量软件1.位图:位图软件中形成图形(如Photoshop)1)由像素组成(像素是一些颜色块,是组成位图的基本单位)2)颜色丰富,色彩过渡自然3)对硬盘与内存的要求较高4)放大后会失真5)影响位图清晰度的是分辨率分辨率:单位面积内像素的个数,直接影响到图形的质量分辨率越大图片越清晰像素越多文件较大2.矢量图矢量软件形成的图形(coreldraw illustrator)1)由数据记录组成---- 点,线,面2)颜色单调,不易生成色彩丰富的图形3)放大时不会影响图形质量,特别是对于文字的处理四、页面布局标题栏、菜单栏、工具栏、属性栏、工具箱、状态栏、调色板五启动新建打开保存1.启动2.新建CTRL+N 文件—新建3.打开(只能打开Coreldrew中做的图形-CDR以及低版本Coreldrew中的图形)打开Ctrl+O 文件—打开4.保存:格式CDR保存Ctrl+S 另存为Ctrl+Shift+S文件—保存/另存为注:注意版本的选择5.导出:将Coreldrew中的图形导出可在其他软件中打开Ctrl+E 文件/导出6.导入:可将其他软件中的图片放到Coreldrew中打开Ctrl+I 文件/导入导出格式1.P SD :Photoshop中最常用的一种储存方式,能保存所有的信息优点:便于修改缺点:文件大信息多2.J PEG/JPG:压缩格式优点:信息少,文件小。
基于OpenGL的三维绘图框架设计
基于OpenGL的三维绘图框架设计随着计算机硬件技术的持续提升,以及三维图形技术的日益成熟和广泛应用,基于OpenGL的三维绘图技术得到了越来越广泛的应用。
作为一种较为通用的三维绘图框架,OpenGL可用于实现各种各样的三维图形应用,如三维游戏、CAD/CAM等。
本文的主要目的是介绍一个基于OpenGL的三维绘图框架的设计方案。
首先,我们需要了解OpenGL的基本概念、运作机制以及常用的API函数。
OpenGL是一种图形库,提供了一系列的API函数,用于实现各种渲染操作,如绘制、材质、光照、纹理、渲染状态等。
除此之外,OpenGL还提供了一系列的扩展API函数,用于实现一些高级的图形效果,如阴影、反射、抗锯齿等。
为了便于使用OpenGL进行三维绘图,我们可以将其封装成一个高层次的API,以简化对OpenGL的操作。
在本文所介绍的三维绘图框架中,我们使用了C++语言,并通过类的方式实现了OpenGL的封装。
具体而言,我们设计了以下几个类:1. Window类:用于创建OpenGL窗口,以及实现基本的事件处理、渲染操作等。
2. Camera类:用于实现摄像机控制,包括相机的位置、朝向、视角等。
3. Shader类:用于加载、编译、链接OpenGL着色器程序,以实现各种图形效果。
4. Mesh类:用于加载、渲染各种三维模型,可支持多种格式,如OBJ、FBX 等。
5. Texture类:用于加载、绑定纹理贴图,以实现各种纹理效果。
通过以上几个类的组合,我们可以实现一个基本的三维绘图框架。
具体而言,在窗口创建完成后,我们可以通过OpenGL的API函数绘制各种几何图形,如球体、立方体、柱体等,或者从外部导入各种三维模型。
同时,我们还可以通过Shader类加载、编译、链接着色器程序,以实现各种图形效果。
例如,我们可以通过顶点着色器将各种几何图形投影到屏幕上,通过片元着色器实现纹理贴图、光照、阴影等效果。
总的来说,基于OpenGL的三维绘图框架具有以下优点:1. 灵活性高:OpenGL提供了丰富的API函数以及着色器语言,可实现各种各样的图形效果。
cdr格式
CDR格式什么是CDR格式CDR格式,全称为CorelDRAW文件格式,是由Corel公司开发的一种矢量图形文件格式。
CDR格式常用于CorelDRAW软件中,用于存储绘图、图形设计和桌面发布相关的数据。
CDR文件可以包含线条、图形、文本和位图等多种元素,它具有矢量图形的优点,可以无损的进行放大和缩小。
CDR文件结构CDR文件是按照二进制格式进行存储的,其文件结构包含了多个数据块,每个数据块都有一个类别码和长度字段。
下面是CDR文件的常见数据块结构:•文件头数据块(BegHdr):存储了文件的版本信息、色彩模式、缩略图等信息。
•图形图像数据块(Pic):存储了图形图像的对象、属性和样式等信息。
•对象数据块(Shap):存储了图形对象的属性和样式等信息。
•文本数据块(TXTR):存储了文本对象的内容、字体和样式等信息。
•位图数据块(Bitmap):存储了位图对象的像素数据和压缩类型等信息。
CDR文件中的数据块按照顺序存储,可以通过解析每个数据块来还原出原始的绘图、图形设计和桌面发布相关的数据。
CDR文件的优势1.矢量图形格式:CDR文件是基于矢量图形的格式,相比于位图格式如JPEG、PNG等,它可以无损的进行放大和缩小。
这使得CDR文件非常适用于需要高品质输出的设计领域,如印刷、广告等。
2.多元素支持:CDR文件可以包含线条、图形、文本和位图等多种元素。
这使得图形设计师可以在同一文件中综合运用多种设计元素,方便管理和编辑。
3.可编辑性:CDR文件可以使用CorelDRAW软件进行编辑和修改,设计师可以对图形对象、文本和位图等进行操作。
这使得设计师可以在同一文件中进行多次修改和调整,提高设计的便捷性和灵活性。
CDR文件的应用领域由于CDR格式的优势,它在多个领域都得到了广泛的应用,下面是一些常见的应用领域:1.印刷和出版业:CDR文件在印刷和出版业中被广泛使用,设计师可以使用CorelDRAW软件创建和编辑图形设计、标志、海报等,然后输出为CDR文件进行印刷和发布。
C# Graphics类
C# Graphics类
Graphics类是GDI+中重要的类,它是GDI+的核心,使用它可以绘制直线、曲线、图形、文本和图像。
该类不可以继承,但可以与其他类结合使用。
Graphics类提供将对象绘制到显示设备的方法,它与特定的设备上下文关联。
通过调用从System.Windows.Forms.Control继承的对象上的Control.CreateGraphics方法,或通过处理控件的Control.Paint事件并访问System.Windows.Forms.PaintEventArgs类的Graphics属性,可以获取Graphics对象。
也可以使用FromImage方法从图像创建Graphics 对象。
它有以下3种基本类型的绘图界面:
●Windows和屏幕上的控件。
●要发送给打印机的页面。
●内存中的位图和图像。
Graphics类提供了可以在这些绘图界面上绘图的功能。
我们可以使用它绘制圆形、椭圆、曲线、矩形、线条、弧形和文件等。
如表9-5、9-6所示分别为Graphics 类使用的属性和方法:。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Core Graphics框架 : 一个让程序猿成为视觉设计师的框架
Core Graphics简介 说Core Graphics框架之前,我们首先要先说一下,在iOS中绘制图形的方式,其形式主要有三种.
1.创建一个UI视图,并且使用"drawRect:"方法添加到Quartz 2D绘制代码中,也就是今天所要说的Core Graphics框架. 2.使用Core Animation层,并且通过委托方法想Core Animation层提供图形内容. 3.通过 OpenGL ES 渲染图形
其结构图如下所示.从图中我们看到的是是不管使用者还是开发者最容易接触到的先是UIKit框架,然后再就是Core Graphics,Core Animation和OpenGL ES,Core Graphics,Core Animation这两个框架虽然我们没有用过,但是我们
最少听过,但是OpenGL ES是什么鬼?OpenGL ES这个有点日后再议,今天主题不是它,而是我们的Core Graphics框架.
Core Graphics其实是一套基于C语言的API框架,使用了Quartz作为绘图引擎。这也就意味着Core Graphics不是面向对象的。但是这句话对我们并无伤大雅.也就是然并卵~,我们只需要知道如何使用Core Graphics框架就好.下面我就对Core Graphics框架相关知识一一道来.
CGContextRef (图形上下文) 图形上下文,不要被它的名字吓到,其实你就可以理解为是一个画布,我们要绘制任何东西总要有个东西接受我们绘制的东西吧?所以CGContextRef就出现了,对于CGContextRef有几个注意点,iOS是允许新建CGContextRef的,但是我们通常不这么干,因为创建一个新的CGContextRef,但是性能和内存的使用上,效率是非常低的。所以我们会在"drawRect:"方法中直接获取当前View的CGContextRef.代码如下. //获取当前View的图形上下文 CGContextRef contextRef = UIGraphicsGetCurrentContext();
CGPath(路径) 那么画板有了,我们是不是应该可以作图了?是的,但是如何才能确定出一个图形呢?不管是什么图形,首先我们要先确定它的边框,一旦确定了一个边框,我们就可以设置边框的各种绘图属性、边框内部区域的绘图属性、绘制边框还是内部区域等。这时候,CGPath就闪亮登场了.CGPath也就是路径信息,一开始如果没
有接触过PS过的童鞋可能不知道路径到底是一个什么,通俗一点讲,不管你画什么图形,直线也好,多边形也罢,你的画笔都要从一个开始位置开始,然后 "持续"移动画笔,画出一个图形来.终止于一个结束点,如果画笔为无色,画笔划过的线可以理解为路径.当然了,现实中哪有无色的画笔?哈哈.好了言归正传.Core Graphics框架其实已给我们分装好了很多的调用函数,方便我们调用,我们就看几个常用调用函数.
新建路径(常用于创建直线,也可以用直接拼接成多边形) CGMutablePathRef path = CGPathCreateMutable(); 新建矩形,rect是矩形的位置和大小信息,transform是仿射变换参数. CGPathCreateWithRect(CGRect rect,constCGAffineTransform * __nullable transform) 新建圆,rect是圆的位置和大小信息,cornerWidth和cornerHeight是圆的半径,通过设置这两个参数,我们可以生成椭圆,transform是仿射变换参数.
CGPathCreateWithRoundedRect(CGRect rect,CGFloat cornerWidth, CGFloat cornerHeight,constCGAffineTransform * __nullable transform)
把路径添加到图形上下文中,c是图形上下文参数,path是路径参数.这里有一点要注意,如果你创建好路径,并且调用下面添加方法,我们在View页面上是看不到的路径,这是为什么呢?还记得我们前面说用"无色"的画笔做出的图形,可以理解为路径.就是因为没有涂色,所以看不见.
CGContextAddPath(CGContextRef __nullable c,CGPathRef __nullable path) 绘制路径函数,我们把路径的属性设置完成之后,就需要绘制函数,记住添加和绘制是两回事~~~.c代表着图形上下文.mode代表着填充类型.
CGContextDrawPath(CGContextRef __nullable c, CGPathDrawingMode mode) 释放删除路径函数,有人就会问,我们在ARC开发环境下,会自动释放呀,NONONO~~,因为CGPathCreateMutable方法返回的路径是一个Core Fundation Object.而这并不在ARC的管理范围之内.所以需要使用下面函数
手动释放对象. path代表着要删除的路径.
CGPathRelease(CGPathRef __nullable path) CGAffineTransform(仿射变换)
那么,就算我们已经已经做好了图形了,可能我们需要对图形做平移,缩放,旋转的时候,我们该如何实现?CGAffineTransform是一个仿射变换的结构体,专门用于进行二维平面的几何变换(平移,旋转,缩放).而且比较贴心的是系统(到底是系统还是程序猿? CGAffineTransform的结构体如下所示,如果想要了解CGAffineTransform就要引入齐次函数的概念,这个以后再说.
structCGAffineTransform { CGFloat a, b, c, d; CGFloat tx, ty; }; 平移函数,tx和ty代表着偏移量. CGAffineTransformMakeTranslation(CGFloat tx,CGFloat ty) 缩放函数,sx和sy代表着x轴和y轴的缩放比例. CGAffineTransformCGAffineTransformMakeScale(CGFloat sx, CGFloat sy) 旋转函数,angle代表着旋转的角度.逆时针为正,顺时针为负。 CGAffineTransformMakeRotation(CGFloat angle) 文字的绘制
上面我们看了一下如何创建多边形,那么显示当中不但有图形还会出现文字,文字我们又该如何处理呢?文字的绘制比较简单,我们只要直接使用需要绘制的字符串直接调用drawInRect:和drawAtPoint:这两个方法即可.具体内容以后再说,这篇我们只做简单的了解.下面我们就对这两个绘制方法进行简单的介绍.
rect代表着绘制的文字的大小和位置信息.attrs代表着文本属性. - (void)drawInRect:(CGRect)rect withAttributes:(nullable NSDictionary *)attrs
point代表着绘制的文字的大小信息.attrs代表着文本属性.
- (void)drawAtPoint:(CGPoint)point withAttributes:(nullable NSDictionaryd> *)attrs
重新绘制. 我们知道绘制整体过程是在View的- (void)drawRect:(CGRect)rect;方法中进行.如果我们想要重新绘制图形该如何办呢?我们并不会直接调用drawRect:这个绘制方法,而是调用如下方法.
//重新绘制. - (void)setNeedsDisplay; 从Core Graphics框架到Hello World
上面喋喋不休的讲了一大堆,可能童鞋早已擦拳磨掌准备大干一场了.接下来我们就开始Hello World吧.
首先,我们在工程中新建一个UIView对象.这里我创建的是SDView,大家可自行设定. 创建好了UIView对象之后,我们就在SDView.h的- (void)drawRect:(CGRect)rect;
方法中进行绘制工作,首先我们要先获取View的图形上下文.毕竟自己创建的效率低嘛~
//获取上下文 CGContextRef contextRef = UIGraphicsGetCurrentContext(); 获取完成之后,Hello World之路就从一条直线开始吧,首先我们先设置创建一个路径.
//创建路径 CGMutablePathRef path = CGPathCreateMutable(); 创建完路径,我们就设置路径的起始位置和终点位置,并且把它添加上图形上下文上.
CGPathMoveToPoint(path, nil, 100, 100);
CGPathAddLineToPoint(path, nil, 200, 200); CGContextAddPath(contextRef, path);