畢業論文《面向移動設備的矢量繪圖平台設計與實現》摘要、目錄


面向移動設備的矢量繪圖平台設計與實現

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM