999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

OpenGL在固體物理教學中的應用

2010-10-27 02:10:44錢英軍于彥明祝玉華
中國科技信息 2010年6期

錢英軍 于彥明 祝玉華

1. 黑龍江司法警官職業學院 150060; 2. 唐山師范學院 063000

OpenGL在固體物理教學中的應用

錢英軍1于彥明2祝玉華2

1. 黑龍江司法警官職業學院 150060; 2. 唐山師范學院 063000

根據固體物理教學特點將OpenGL函數庫封裝成為C++Builder的組件,使得課件的開發效率有較大提高。

OpenGL;類;封裝

OpenGL;class; encapsulation

引言

固體物理教學難點之一就是如何利用多媒體技術對各種晶體結構進行形象的演示,以達到深化教學效果的目的。如果能夠進行交互操作則效果更佳。因此我們選用了OpenGL編程的方法,此方法的優點就是可以獲得真三維圖像,幾何體的大小、位置及其運動可以嚴格按照給定參數或函數描繪,并可以實現實時人機交互;缺點就是不能像一些二維工具提供所見即所得的方法,需要更多的計算機語言的知識和OpenGL庫函數的知識。

1 OpenGL面臨一個困難及處理策略

選用OpenGL面臨一個困難就是它沒有提供像C++那樣面向對象的類封裝,因此,編程效率比較低,而且不能有效地與像C++ Builder這樣的開發工具整合在一起,使用起來很不方便。

為此,我們利用C++ Builder提供的控件開發功能將OpenGL需要做的初始化和程序結束時應做的釋放動作封裝成為一個GLScene控件(選擇TCustomControl作為父類),并將其添加到組件面板Compoment Palette中。

與OpenGL初始化和關閉有關的私有數據成員有:應用程序設備描述符句柄HDC,著色描述符表句柄HGLRC、像素格式描述符PFD等;成員函數setupPFD功能就是選擇、設置PFD。消息處理函數GLWndProc主要功能是,接到WM_CREATE消息后,運行setupPFD函數,成功后獲取HDC,生成HGLRC后,將著色 描 述 符 表 生 效 ; 接 到WM_DESTROY后,將HGLRC失效,同HDC一起予以釋放。

在程序設計期,如果在表單上加入GLScene元件則可以在設計期對其特性進行可視化的修改,對要響應的事件(見圖一)加入處理代碼。

其次,根據固體物理晶體結構展示要求,我們將一些OpenGL函數封裝成類,它們分別是GLCollection、GLTransform、GLMaterial、GLGeometry、GLCamera,將GLCamera和GLCollection加入TOpenGLScene。

GLCollection是我們要渲染的場景,它的子類包括要進行的變換GLTransform,而GLTransform的子類是GLGeometry,它是要繪制的幾何體,它的子類是該幾何體的材質和所需的光照。GLCamera主要負責設置視場變換。它們的關系見圖二。

2 課件開發實例

圖一 GLScene控件的特性和響應事件

圖二 封裝類之間關系

圖三 幾何體類的成員和方法

圖四 程序效果圖

在定義了以上類之后,就可以開發具體的課件了。我們以面心立方體為例,來說明上述方法的應用過程。

首先,打開C++Builder中建立一個新工程,然后,從組件面板中選擇TOpenGLScene放到應用程序的窗體Form上,在對象檢視器Object Inspector中選擇Align為alClient,表示該組件與窗體的客戶區對齊,其它特性可以選擇缺省設置即可。在窗體的OnShow事件中加入處理代碼,包括 根 據 本 物 理 問 題 生 成GLCollection、GLTransform、GLGeometry、GLMaterial、GLLight和GLCamera的實例,其中GLGeometry的成員和方法(見圖三)。將GLScene的GLCollection和GLCamera成員指向剛生成的實例即可,最后將應用程序的OnIdle事件句柄指向TOpenGLScene的DrawScene函數,運行效果如圖四。

3 結語

值得指出的是,在對OpenGL進行類封裝之后,為這些類提供了具有常用參數的構造函數,在生成類的實例時調用帶有缺省參數的構造函數后,開發速度得以加快。由于固體物理中要演示的晶體結構不需要貼圖,所以我們在應用中沒有對貼圖進行封裝。

為快速開發課件,我們在封裝類的時候,加入了從數據文件讀取幾何體尺寸、位置和材質參數、窗口參數、照明參數等數據的方法。這也是TOpenGLScene類創建的目標-只需在數據文件中輸入參數,在程序設計期,給出TTransform類的變換函數,即可完成程序設計。

[1]安杰爾著,李桂瓊,張文祥譯.OpenGL程序設計指南(第2版)——國外經典教材·計算機科學與技術[M]. 北京:清華大學出版社.2005.

[2]李東,王宏.Borland C++ Builder 5 高級開發技術[M]. 北京:中國水利水電出版社.2000.

[3]數碼影像技術叢書編委會. Cosmo3D 程序設計指南[M]. 北京:北京希望電子出版社.2000.

[4]數碼影像技術叢書編委會. 高級圖形圖像核心技術寶典-程序員編程指南[M]. 北京:北京希望電子出版社. 2000.

[5]蔡伯壎. 固體物理基礎[M]. 北京:高等教育出版社.1990.

OpenGL’s application in solid-state physics teaching

QIAN Yingjun1YU Yanming2ZHU Yuhua2
(1. Heilongjiang judicial officers Vocational College, Harbin 150060; 2. Tang Shan Teachers College, Tangshan 063000)

According to the solid-state physics’s teaching characteristic, the OpenGL function storehouse are encapsulated into C++Builder’s module, in this way the development efficiency of the courseware have been enhanced greatly.

錢英軍(1971- )男,黑龍江省哈爾濱人,碩士,副教授,從事電氣工程、計算機網絡技術研究。

主站蜘蛛池模板: 日日碰狠狠添天天爽| 日韩欧美中文字幕在线韩免费 | 啦啦啦网站在线观看a毛片| 亚洲第一色视频| 99久久精品视香蕉蕉| 国产精品蜜臀| 亚洲AV无码乱码在线观看裸奔| 激情网址在线观看| 国产精品自在拍首页视频8| 亚洲午夜天堂| 国产门事件在线| 直接黄91麻豆网站| 国产福利免费视频| 国产成年女人特黄特色毛片免 | 精品国产www| 免费一级毛片在线观看| 久久综合色视频| 欧美精品亚洲精品日韩专区| 久草性视频| 亚洲一区二区日韩欧美gif| 91精品aⅴ无码中文字字幕蜜桃 | 国产成人精品视频一区二区电影| 91最新精品视频发布页| 国产96在线 | 91最新精品视频发布页| 国产福利在线观看精品| 欧美爱爱网| 亚洲欧美日韩中文字幕一区二区三区| 国产成人无码综合亚洲日韩不卡| 99久久精品免费看国产电影| 国产欧美又粗又猛又爽老| 婷婷六月天激情| 国产丝袜一区二区三区视频免下载 | 男人天堂伊人网| 高清免费毛片| 久久久久九九精品影院 | 国产成人久久综合一区| 久久精品一品道久久精品| 日本一区高清| аv天堂最新中文在线| 亚洲an第二区国产精品| 55夜色66夜色国产精品视频| 国产高潮流白浆视频| 国产女同自拍视频| 日韩人妻无码制服丝袜视频| 91av成人日本不卡三区| 欧美爱爱网| 亚洲成人黄色在线| 中文字幕中文字字幕码一二区| 一级福利视频| 亚洲国产日韩在线成人蜜芽| 亚洲日韩国产精品无码专区| 伊人中文网| 久久综合干| 亚洲婷婷丁香| 91丨九色丨首页在线播放| 成人免费网站久久久| 欧美日本在线一区二区三区| 色一情一乱一伦一区二区三区小说 | 国产三区二区| 91无码网站| 欧美精品三级在线| 欧美中文字幕在线播放| 91精品国产一区自在线拍| 就去吻亚洲精品国产欧美| 国产尤物视频网址导航| 日韩久草视频| 国产精品专区第1页| 欧美国产中文| 无码日韩人妻精品久久蜜桃| 天堂在线亚洲| 国产永久在线视频| 亚洲va欧美ⅴa国产va影院| 日韩无码真实干出血视频| 丰满人妻中出白浆| 影音先锋丝袜制服| 在线观看免费黄色网址| 成人va亚洲va欧美天堂| 国产在线自在拍91精品黑人| 久久福利网| 国产91特黄特色A级毛片| 日韩乱码免费一区二区三区|