简笔画的项目是从暑期8月份开始的,差不多9月多的时候已经有出版,修修改改拖到现在才算能结项目. 现在来总结有点晚了,一些体会早忘记了,但我还是尽力回忆一些自己认为有用的东西记录一下。

1、故事板。我在上个项目项目总结:华南师范大学校园开发教育android客户端总结 中谈到了故事板,就是项目的设计图。因为这次的项目系统较为复杂,逻辑连贯性不强,这就考验设计故事板的人的写故事板的能力。其实故事板就是你要完全理解整个应用依赖的东西,所以故事板写得清晰合理的话,项目也会进行得较为顺利。这次的故事板有很多细节没有交代清楚,好多东西都需要后来的讨论才最终确定下来,这虽说是无可避免的但是能减少就减少吧。

2、ios绘图机制:因为简笔画项目主要就是一个绘图软件,所以总结一些ios的绘图是必须的。

可参考上面的官方文档。

ios提供了2种绘图方案:

1,采用iOS的核心图形库:Quartz, Core Animation, and UIKit

2,采用OpenGL ES。

这次项目是用第一种,OpenGL更多的是应用于游戏场景中。

Quartz类库是画画的主要类库,提供了基于路径画图、反锯齿渲染、渐变填充、图像、色彩、坐标空间转换和PDF文档的一些操作。

UIKit提供划线、Quartz images和颜色操作的objective-C 封装。

Core Animation:提供了UIKit的的底层支持,也可以用来实现自定义动画。

The UIKit Graphics System

1、画图主要在drawRect:中进行,但你不能主动去调用它,它只能被系统本身调用,我们只能通过orsetNeedsDisplayInRect: 通知系统更新绘图,系统之后会自行去调用drawRect。

2、Graphics Contexts:Conceptually, a graphics context is an object that describes where and how drawing should occur, including basic drawing attributes such as the colors to use when drawing, the clipping area, line width and style information, font information, compositing options, and so on。从定义可以看出,Graphics Contexts可以理解成一个画板,画板上可以定义一些基本的画图元素。每个UIVIew都会创建。

3、坐标。

上图是用户坐标、视图坐标、硬件坐标的关系。但我们更关心的是ios接口给我们的坐标系统:2种坐标系统

upper-left-origin coordinate system (ULO)  and  lower-left-origin coordinate system (LLO)

关于坐标变换的可以参考iphone:坐标变换 。

4、画图。

说了这么多,究竟在ios上如何实现画图呢?

-(void)drawRect:(CGRect)rect{

CGContextRefref=UIGraphicsGetCurrentContext();//拿到当前被准备好的画板。在这个画板上画就是在当前视图上画

CGContextBeginPath(ref);//这里提到一个很重要的概念叫路径(path),其实就是告诉画板环境,我们要开始画了,你记下。

CGContextMoveToPoint(ref, 0, 0);//画线需要我解释吗?不用了吧?就是两点确定一条直线了。

CGContextAddLineToPoint(ref, 300,300);

CGFloat redColor[4]={1.0,0,0,1.0};

CGContextSetStrokeColor(ref, redColor);//设置了一下当前那个画笔的颜色。

CGContextStrokePath(ref);//告诉画板,对我移动的路径用画笔画一下。

}

什么简单的画了一条线,其实画画的过程都差不多,有几个步骤:

1,拿到当前面板  UIGraphicsGetCurrentContext

2,开始画声明

3,画

4,提交画

主要在对Graphics Contexts做的那些修改上面:

具体内容自行查文档,这里不赘述。

5、View截图

-(UIImage *)getImage

{

UIGraphicsBeginImageContext(self.bounds.size);

[self.layer renderInContext:UIGraphicsGetCurrentContext()];

UIImage*Img =UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();returnImg;

}

记录笔迹:

android 绘画笔迹回放_简笔画项目总结: ios绘图机制 实现记录笔迹功能相关推荐

  1. android 绘画笔迹回放_一种基于可缩放矢量图形的安卓平台笔迹回放方法及装置与流程...

    本发明涉及笔迹显示领域,更具体地,涉及一种基于可缩放矢量图形的安卓平台笔迹回放方法及装置. 背景技术: 智能移动设备平台上的回放技术已遍布许多安卓(Android)软件中,比如:字帖类软件,画图类软件 ...

  2. 线条边框简笔画图片大全_简笔画猪 手抄报图片边框版式大全

    小猪简笔画绘画教程步骤(6) 可爱简笔画猪剪影 动物剪影 手绘动物 简洁 动物简笔画 猪简笔画png q版可爱猪简笔画 简笔画猪的画法 简笔画小猪佩奇爸爸 简笔画大全 猪 胖猪简笔画 猪的简笔画步骤- ...

  3. android 绘画笔迹回放_随时记录分享书写笔迹,EverPEN高级版套装体验

    看到笔记本就想起小时候,老师为了提高学生们的写作能力,而要求大家每周写3篇日记,几年下来慢慢的让自己养成了每周会抽出点时间,手写些生活中的点滴趣事.但随着笔记本保持时间有限,而且有时查找起来也不方便, ...

  4. python画大耳朵图图_简笔画教程:怎么画大耳朵图图

    大耳朵图图是一部比较有意思的动画片,很多小朋友都会比较喜欢看,图图是个小调皮,但是又非常的惹人喜爱,有个时候做出来的事情,常常会惹得人一阵大笑,所以也是我们生活中的开心宝.今天露西姐姐呢,就是来教大家 ...

  5. 如何用catia画半圆_简笔画用半圆画卡通动物

    [创意系列-半圆动物] ◁第一步 首先画出三个半圆形.大小是一样的. 第二步▷ 在第一个半圆上画出一对尖尖的耳朵. ◁第三步 然后画出它的表情.眼睛留出高光部分. 第四步▷ 还有一双小小的手臂.可爱的 ...

  6. android 上下滚动文字_计算机毕设项目004之Android系统在线小说阅读器

    计算机毕设项目004之Android系统在线小说阅读器 一. 项目名称 基于Android系统的在线小说阅读器 二. 项目简介 项目中的角色功能: 支持翻页动画:仿真翻页.覆盖翻页.上下滚动翻页等翻页 ...

  7. java绘图机器猫_简笔画教程:教你画机器猫

    机器猫又叫叮当猫.多啦A梦,心肠好,乐于助人,做事很拼命,但却心肠软.每次大雄遇到困难,他总会帮大雄.他的特征很明显,只要抓住其特征画,就算画得抽象,也可以让人联想到画的是谁.小伙伴们动笔跟着露西画机 ...

  8. python代码画海绵宝宝步骤图解_简笔画教程 | 有一种回忆叫做海绵宝宝

    Captain: Are ya ready kids? 船长:准备好了吗,孩子们? Kids: Aye Aye Captain. 孩子:是的,船长. Captain: I can't hear you ...

  9. opengl 画椭圆_简笔画|如何画一个可爱的米老鼠

    小学科学库亲子实验.趣味科普.生活百科.学科知识 [卡通动物系列-米老鼠] ◁第一步 首先画一个半圆来代替米老鼠的头部. 第二步▷ 头部下面画出两个相对称的"3"是它的脸颊. ◁第 ...

最新文章

  1. 两个黑箱问题 ——深度神经网络和脑神经网络
  2. IBM携手天健“漫步”区域医疗信息化市场
  3. office控件显示不了_计算机二级office考试重点难点总结,考生必看!
  4. 理解Promise规范
  5. bootstrap modal远程加载的两种方式
  6. 51单片机温度控制系统报警器,不会做课程设计的就拿走
  7. web前端常用开发工具排行:8款html开发工具推荐下载
  8. Bitvise密钥登录Linux服务器
  9. 【AI】行为树(Behaviour Tree)
  10. 基于社交网络分析算法(SNA)的反欺诈(二)
  11. 单位内网视频会议怎么开
  12. 【锂知道】锂电池基本原理解析:充电及放电机制
  13. java 反编译软件 推荐
  14. 100+个NLP数据集
  15. 图片img或者含有img元素拖拽时的阴影效应问题
  16. maven找不到,变小蜘蛛问题
  17. 一文带你熟悉android的smali语法一
  18. Android 版灵动岛插件上线;iPhone 15或将改名,并改用USB-C接口;​Swift 5.7 发布|极客头条
  19. 机器学习(学习笔记)二 模型评估与选择(上)
  20. 萧乾升:4.14黄金,白银TD,纸白银,最新行情分析

热门文章

  1. 门控循环单元-GRU单元(Gated Recurrent Unit)
  2. pycharm安装第三方库失败解决方案
  3. IoT 设备通信安全讨论
  4. 【leetCode189】轮转数组
  5. 1 - 什么是机器学习?怎么用?
  6. 模拟键盘、鼠标 mouse_event keybd_event
  7. H3CNE-DHCP(动态主机配置协议)
  8. matplotlib数据可视化
  9. codeforce_exercise_r22
  10. Python3分析个人音乐收藏