毕业论文《面向移动设备的矢量绘图平台设计与实现》摘要、目录

面向移动设备的矢量绘图平台设计与实现

Design and Implementation of Mobile Device-oriented Vector Drawing Platform

引用本论文: 张云贵. 面向移动设备的矢量绘图平台设计与实现[D]. 北京:北京理工大学软件学院, 2013.

本论文的相似度为0%,是源创论文。欢迎评阅讨论,请勿抄袭,如需更多资料请在博客留言。

如果在研究或论文中使用到,欢迎回复或私信你的学校、姓名、研究领域,并在论文中添加引用或致谢。感谢你对开放成果的尊重和鼓励。

 

摘要

近年来,国内数字教育等行业对平板电脑(以iOS和Android为主)的需求变得迫切,面向移动设备的矢量绘图技术具有较大的发展空间和应用价值。本文针对移动绘图软件移植工作量大、开发困难、缺乏通用开发框架的情况,设计并实现了iOS和Android的交互式矢量绘图平台(TouchVG开源框架)。

本文首先分析了移动设备的特性,提出了一种适合多种移动设备的矢量绘图平台的设计方法。在跨平台内核中使用C++实现绘图功能;在设备相关模块中实现画布和视图适配器、触摸手势识别,并将手势信息委托内核处理。其优点是主要功能跨平台、内核易于扩展、设备相关模块易于实现。

其次,在iOS上基于Quartz 2D实现了画布适配器,根据实验提出了适合连续手绘的增量绘图的实现方法、快速动态绘图的多层绘图的实现方法,在图形量较大时加快了回显速度。

在Android上使用SWIG实现了界面层对本地C++接口的扩展方式,解决了本地引用对象等内存问题。进而基于android.graphics包实现了画布适配器,允许跨平台内核回调。提出了两种回显较快的视图设计方式:使用增量绘图技术的普通视图方式;在SurfaceView中绘制动态图形的双层视图方式。

最后,给出了iOS和Android的矢量绘图平台(TouchVG)在数字教育等领域的应用效果。结果表明基于TouchVG平台的应用开发效率较高、跨平台性好。

 

关键词:矢量绘图;跨平台;移动设备;绘图平台

中图分类号:TP391.41

UDC分类号:744

致谢

本论文得以完成,首先感谢导师张春霞副教授。张春霞老师学风严谨、认真负责,从论文开题到写作的一年内经常主动监督和指导我的工作,提出了很高的要求,多次当面指导,耐心细致的提出了各种修改意见。

感谢我的企业导师郭宗明研究员、博导。郭老师在治学态度、研究方法上给我很多指导甚至是批评,在论文选题、写作思路上给了很多指导意见,在繁忙的工作中仔细评阅了各种文档。

从论文开题起,所在的方正电子公司的曹学军部长一直鼓励我,给我充足的研究时间和完善的硬件条件。史航同学在论文写作思路上给了很多启发,对论文进行了仔细评阅。IBM公司的黄冶和浙江大学的徐周翔博后对英文摘要进行了审阅和指正。同事汤寿麟、李文博在绘图平台的测试和应用上给了很多建议,王纬和王元在开源项目上进行了帮助。对他们所有支持和帮助,在此一并表示感谢。

最后感谢各位专家评委对本论文的指正和建议。

目录

第1章 绪论... 1

1.1 研究背景和意义... 1

1.2 国内外研究现状... 1

1.2.1 移动图形引擎的研究现状... 1

1.2.2 矢量绘图相关的开源项目... 2

1.2.3 iOS绘图优化技术... 3

1.2.4 Android绘图技术... 4

1.2.5 图形引擎跨平台的方式... 4

1.2.6 多点触摸和手势识别... 5

1.2.7 编程语言和开发方式... 5

1.2.8 Android内存访问... 6

1.3 本文的研究内容... 6

1.4 论文组织结构... 7

第2章 相关技术介绍... 8

2.1 iOS相关技术... 8

2.1.1 设备参数... 8

2.1.2 iOS绘图相关框架... 8

2.1.3 Quartz 2D图形库和显示原理... 9

2.1.4 离屏渲染技术... 10

2.2 Android相关技术... 10

2.2.1 SWIG的编程语言转换... 10

2.2.2 Android开发方式... 11

2.2.3 Android绘图相关框架... 11

2.3 本章小结... 12

第3章 移动绘图平台的架构设计... 13

3.1 绘图应用的跨平台设计... 13

3.1.1 基于多态的回调扩展机制... 13

3.1.2 跨平台编码的策略... 14

3.2 适应多种设备的绘图模型... 14

3.2.1 移动平台的异同分析... 14

3.2.2 跨平台绘图模型... 15

3.3 总体设计... 16

3.3.1 分层架构... 16

3.3.2 MVC架构... 17

3.3.3 系统组成... 18

3.3.4 代码目录结构... 19

3.4 跨平台绘图内核的实现方式... 20

3.4.1 矢量图形显示的实现方式... 20

3.4.2 交互式绘图的实现方式... 21

3.4.3 画布接口... 23

3.4.4 交互式绘图命令... 25

3.4.5 矢量图形的仿射变换... 26

3.5 本章小结... 26

第4章 iOS绘图平台的实现... 27

4.1 基于Quartz 2D实现画布适配器... 27

4.1.1 画布原语与Quartz 2D的映射... 27

4.1.2 画布适配器的跨平台单元测试... 29

4.1.3 图像的矢量化显示... 31

4.1.4 图像资源的管理... 31

4.1.5 控制点的图像显示... 31

4.2 显示优化技术研究... 32

4.2.1 基于位图的双缓冲绘图... 32

4.2.2 快速手绘的增量绘图技术... 35

4.2.3 快速动态绘图的多层绘图技术... 36

4.2.4 动态绘图的参数优化... 37

4.3 iOS绘图平台的结构... 38

4.3.1 静态结构... 38

4.3.2 应用效果... 39

4.4 本章小结... 40

第5章 Android绘图平台的实现... 41

5.1 开发环境... 41

5.1.1 SWIG的工作原理分析... 41

5.1.2 SWIG的运行性能分析... 42

5.1.3 开发方式... 43

5.1.4 开发工具... 43

5.1.5 SWIG编译配置... 44

5.1.6 NDK编译配置... 45

5.2 基于Android Canvas实现画布适配器... 45

5.2.1 画布原语与Android Canvas的映射... 45

5.2.2 图像的显示和管理... 48

5.3 绘图视图的设计和实验... 49

5.3.1 实现方式... 49

5.3.2 实验结果... 51

5.4 Android绘图平台的结构... 53

5.4.1 静态结构... 53

5.4.2 应用效果... 54

5.5 本章小结... 54

第6章 绘图平台的应用和评估... 55

6.1 绘图平台的应用方式... 55

6.2 绘图平台的评估... 56

6.2.1 跨平台应用效果... 56

6.2.2 绘图平台的特性... 57

6.2.3 同类平台的特性对比... 59

6.3 本章小结... 60

总结和展望... 61

参考文献... 62

攻硕期间发表的论文与研究成果... 64

致谢... 65

图目录

图2‑1 iOS图形框架的关系. 9

图2‑2 Android图形组件的关系. 11

图3‑1 跨平台内核与设备平台的双向调用关系. 13

图3‑2 跨平台绘图模型. 15

图3‑3 绘图平台的体系结构. 16

图3‑4 iOS和Android绘图平台. 17

图3‑5 绘图MVC架构. 17

图3‑6 绘图平台的模块关系. 18

图3‑7 代码目录结构. 19

图3‑8 绘图命令体系结构示意图. 25

图4‑1 线型与线端搭配的效果. 28

图4‑2 以奇偶规则填充环形. 29

图4‑3 画布适配器的测试结构. 29

图4‑4 iPad上的画布适配器的测试效果. 30

图4‑5 图像显示的矩阵变换过程. 31

图4‑6 控制点图像显示效果. 32

图4‑7 控制点显示的矩阵变换过程. 32

图4‑8 位图上下文和视图上下文的显示速度对比. 35

图4‑9 绘图视图的层次结构. 36

图4‑10 绘图参数对显示时间的影响. 37

图4‑11 iOS绘图适配模块的结构. 38

图4‑12 iOS综合绘图效果. 39

图4‑13 绘图平台在数字教育等领域的应用效果. 39

图5‑1 Android程序调用C++类的原理. 41

图5‑2 Android类从C++类的虚函数重载的原理. 41

图5‑3 SWIG在Android中的性能评测结果. 42

图5‑4 Android绘图平台的实现方式. 43

图5‑5 Android画布适配效果. 48

图5‑6 Android渲染视图的类关系. 50

图5‑7 Android渲染视图效果. 52

图5‑8 Android绘图适配模块的结构. 53

图5‑9 Android综合绘图效果. 54

图6‑1 绘图平台的应用形式. 55

图6‑2 批注绘图的应用方式. 55

图6‑3 跨平台应用效果. 57

图6‑4 交互命令类的结构. 58

表目录

表1‑1 移动平台上的二维绘图开源框架. 2

表2‑1 iOS设备列表. 8

表2‑2 Android视图的层类型的渲染方式. 12

表3‑1 代码文件夹列表. 20

表3‑2 矢量图形显示实现方式的伪代码. 21

表3‑3 交互式绘图实现方式的伪代码. 22

表3‑4 视图回调接口GiView 22

表3‑5 绘图手势原语. 23

表3‑6 画布回调接口GiCanvas 24

表4‑1 画布原语映射到Quartz 2D 27

表4‑2 其他画布原语与Quartz 2D的映射. 28

表4‑3 在iPad 3上的双缓冲绘图时间(毫秒). 33

表5‑1 Paint对象的参数设置. 46

表5‑2 画布原语与android.graphics的映射. 47

表5‑3 Android视图类与内核显示函数的对应关系. 51

表5‑4 Android渲染视图的组合实验情况. 52

表5‑5 Android绘图适配模块的类. 53

表6‑1 阅读批注绘图的主要类. 56

表6‑2 绘图命令类的说明. 58

表6‑3 交互命令类的实现统计. 59

表6‑4 同类平台的特性对比. 59

posted @ 2013-07-06 18:30  张云贵  Views(1638)  Comments(10Edit  收藏  举报