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

張雲貴發表於2013-07-06

面向移動裝置的向量繪圖平臺設計與實現

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

相關文章