(3.239.33.139) 您好!臺灣時間:2021/03/02 15:28
字體大小: 字級放大   字級縮小   預設字形  
回查詢結果

詳目顯示:::

我願授權國圖
: 
twitterline
研究生:江國豪
研究生(外文):Guo-Hao Jiang
論文名稱:支援物件導向技術的繪圖程式庫
論文名稱(外文):A Graphic Library supporting Object-Oriented technique
指導教授:廖賀田
指導教授(外文):Heh-Tyan Liaw
口試委員:梁德昭高明達莊庭瑞王建民
口試日期:2011-12-24
學位類別:碩士
校院名稱:淡江大學
系所名稱:資訊管理學系碩士班
學門:電算機學門
學類:電算機一般學類
論文種類:學術論文
論文出版年:2012
畢業學年度:100
語文別:中文
論文頁數:106
中文關鍵詞:物件導向技術繪圖程式庫3DOpenGLJOGL
外文關鍵詞:Object-Oriented techniqueGraphic Library3DOpenGLJOGL
相關次數:
  • 被引用被引用:4
  • 點閱點閱:102
  • 評分評分:系統版面圖檔系統版面圖檔系統版面圖檔系統版面圖檔系統版面圖檔
  • 下載下載:0
  • 收藏至我的研究室書目清單書目收藏:0
本論文提出一套以Java語言實作之繪圖程式庫,透過物件導向技術將低階繪圖API封裝成高階的使用方式,讓使用者在使用上能夠較直覺化,進而減輕在繪製圖像時的繁雜工作。

本程式庫以物件導向的概念來建立三維場景,並且提供了三維物件的建立與管理,以及攝影機景觀模擬。另外也實作了三維物件反應事件機制,方便使用者撰寫互動程式。


This thesis comes up with a Graphic Library in Java. Through Object-Oriented technique, wrapper low-level API become have a high-level use environment. User can intuitive use it to build their graphics program.

This Graphic Library build the 3D scene through Object-Oriented perspective, that suppors 3D object constuct and management, simulate camera viewing. In addition, we discussed and implement 3D object event listener, though that user can easy to implement their 3d object interaction program.


目錄
1 緒論 1
1.1 研究動機 1
1.2 研究目的 1
1.3 論文組織 1
2 相關研究 2
2.1 繪圖程式庫的分類 2
2.2 OpenGL 2
2.3 Java3D 3
2.4 物件導向技術 3
3 背景知識 5
3.1 世界環境 5
3.2 三維物件 5
3.3 座標系統 6
3.4 攝影機與投影 7
3.5 座標變換 11
3.6 OpenGL的使用 12
3.7 Java3D的使用 19
4 TWGL繪圖程式庫 28
4.1 程式庫架構 28
4.2 攝影機的景觀 29
4.3 世界與物件 31
4.4 三維物件的繪製 34
4.5 三維物件反應事件 35
5 實際應用 42
5.1 多面體實例 42
5.2 三維拖曳實例 48
5.3 一維/二維拖曳實例 55
5.4 摩天輪實例 67
5.5 甲烷(CH4)實例 77
6 本程式庫與其他程式庫的比較 85
6.1 本程式庫與OpenGL的差異 85
6.2 本程式庫與Java3D的差異 86
7 結論與展望 87
7.1 總結 87
7.2 後續發展 87
參考資料 88
附錄A:數學物件 90
一、 向量 90
二、 矩陣 91
三、 仿射變換(affine transformation) 93
附錄B:三維物件反應事件 96
一、 三維物件反應事件之辨別 96
附錄C:彩圖 99



圖目錄
圖 1、世界座標系與攝影機座標系相對關係 7
圖 2、視窗座標系 7
圖 3、平行投影至投影平面 8
圖 4、平行投影可視區域 9
圖 5、透視投影至投影平面 9
圖 6、透視投影可視區域 10
圖 7、三維物件頂點繪製座標變換示意圖 11
圖 8、picking選取區域 13
圖 9、OpenGL pickDemo實例執行畫面 18
圖 10、OpenGL pickDemo實例output畫面 18
圖 11、場景圖 20
圖 12、場景圖實例執行畫面 21
圖 13、Java3D MousePickApp實例執行畫面 24
圖 14、Java3D SimpleBehaviorApp實例執行畫面 27
圖 15、繪圖程式庫架構圖 28
圖 16、View3D類別繼承圖 29
圖 17、World3D類別繼承圖 31
圖 18、Obj3DManager類別繼承圖 32
圖 19、ZManager類別繼承圖 32
圖 20、Obj3D類別繼承圖 32
圖 21、平行投影的pickRay 36
圖 22、透視投影的pickRay 36
圖 23、三維物件平行拖曳平面示意圖 37
圖 24、三維物件球體拖曳示意圖 38
圖 25、三維物件的反應事件示意圖 39
圖 26、Mouse3DEvent類別繼承圖 40
圖 27、多面體實例執行結果 47
圖 28、三維拖曳實例執行結果 53
圖 29、拖曳至右下方 54
圖 30、使用滑鼠滾輪做深度移動 54
圖 31、一維/二維拖曳實例三維物件階層圖 55
圖 32、一維/二維拖曳實例 65
圖 33、轉動(左)與移動(右)操作 66
圖 34、伸縮Rod子物件 66
圖 35、對TArm拖曳複合旋轉Rod與伸長Rod長度操作 66
圖 36、摩天輪實例三維物件階層圖 67
圖 37、摩天輪實例 76
圖 38、甲烷(CH4)實例三維物件階層圖 77
圖 39、甲烷(CH4)實例(單一景觀) 84
圖 40、甲烷(CH4)實例(多重景觀) 84


表目錄
表一、OpenGL繪製紅線之實例 12
表二、OpenGL pick之實例 17
表三、場景圖實例程式 20
表四、Java3D pick實例程式 23
表五、Java3D 繪製紅線實例 25
表六、Java3D Behavior實例程式 27
表七、demoManyPlh程式碼 44
表八、PlhPanel程式碼 46
表九、Cuboid程式碼 52
表十、TopLevelObj程式碼 57
表十一、 Base程式碼 59
表十二、TBase程式碼 60
表十三、Arm程式碼 61
表十四、Rod程式碼 63
表十五、TArm程式碼 64
表十六、demoFerrisWheel程式碼 68
表十七、FWPanel程式碼 69
表十八、FerrisWheel程式碼 70
表十九、Pillar程式碼 71
表二十、Nail程式碼 71
表二十一、Frame程式碼 73
表二十二、Wheel程式碼 74
表二十三、Basket程式碼 76
表二十四、CH4程式碼 79
表二十五、ChemAtom原始碼 80
表二十六、C_ChemAtom原始碼 81
表二十七、H_ChemAtom原始碼 82
表二十八、ChemLink原始碼 83
表二十九、TwGL繪製紅線之實例 85

[1] Donald Hearn and M. Pauline Baker, “Computer Graphics with OpenGL, Third Edition”, Prentice Hall , 2003.
[2] OpenGL.org , OpenGL, http://www.opengl.org, 1997
[3] Richard S Wright, Jr and Michael Sweet, OpenGL SuperBible, Second Edition, Waite Group, 1999
[4] Dennis J Bouvier, Getting Started with the Java 3D API, Sun Microsystems, 2009
[5]Grady Booch, Robert A. Maksimchuk, Michael W. Engle, Bobbi J. Young, Ph.D., Jim Conallen, Kelli A. Houston, Object-Oriented Analysis and Design with Applications, Addison Wesley, 2007
[6]Dave Shreiner (Author), The Khronos OpenGL ARB Working Group, OpenGL Programming Guide: The Official Guide to Learning OpenGL, Versions 3.0 and 3.1 (7th Edition), Addison Wesley, 2007
[7]Jim X. Chen, Edward J. Wegman, Foundations of 3D Graphics Programming Using JOGL and Java3D (Second Edition), Springer, 2008
[8]James D. Foley, Andries van Dam, Steven K. Feiner, John F. Hughes, Computer Graphics: Principles and Practice in C (2nd Edition), Addison Wesley, 1997
[9]OpenGL Architecture Review Board, Dave Shreiner, OpenGL Reference Manual: The Official Reference Document to OpenGL, Version 1.4 (4th Edition), Addison Wesley, 2004
[10]Edward Angel, Interactive Computer Graphics: A Top-Down Approach using OpenGL (4th Edition), Addison Wesley, 2006
[11]向賢偉, 《以OpenGL建構的3D導覽系統》, 碩士論文, 淡江大學資訊管理研究所, 2008
[12]劉定衡,《全尺度宇宙儀》, 碩士論文, 淡江大學資訊管理研究所, 2009
[13]張弘毅,《支援遠近效果的繪圖程式庫》, 碩士論文, 淡江大學資訊管理研究所, 2010
[14] JogAmp.org , Java OpenGL, http://jogamp.org/, 2011

[15] Oracle.com , Java SE Desktop Technologies, http://www.oracle.com/technetwork/java/javase/tech/index-jsp-138252.html, 2011


QRCODE
 
 
 
 
 
                                                                                                                                                                                                                                                                                                                                                                                                               
第一頁 上一頁 下一頁 最後一頁 top
系統版面圖檔 系統版面圖檔