亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        OpenGL在固體物理教學(xué)中的應(yīng)用

        2010-10-27 02:10:44錢英軍于彥明祝玉華
        中國(guó)科技信息 2010年6期
        關(guān)鍵詞:句柄子類控件

        錢英軍 于彥明 祝玉華

        1. 黑龍江司法警官職業(yè)學(xué)院 150060; 2. 唐山師范學(xué)院 063000

        OpenGL在固體物理教學(xué)中的應(yīng)用

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

        1. 黑龍江司法警官職業(yè)學(xué)院 150060; 2. 唐山師范學(xué)院 063000

        根據(jù)固體物理教學(xué)特點(diǎn)將OpenGL函數(shù)庫(kù)封裝成為C++Builder的組件,使得課件的開(kāi)發(fā)效率有較大提高。

        OpenGL;類;封裝

        OpenGL;class; encapsulation

        引言

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

        1 OpenGL面臨一個(gè)困難及處理策略

        選用OpenGL面臨一個(gè)困難就是它沒(méi)有提供像C++那樣面向?qū)ο蟮念惙庋b,因此,編程效率比較低,而且不能有效地與像C++ Builder這樣的開(kāi)發(fā)工具整合在一起,使用起來(lái)很不方便。

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

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

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

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

        GLCollection是我們要渲染的場(chǎng)景,它的子類包括要進(jìn)行的變換GLTransform,而GLTransform的子類是GLGeometry,它是要繪制的幾何體,它的子類是該幾何體的材質(zhì)和所需的光照。GLCamera主要負(fù)責(zé)設(shè)置視場(chǎng)變換。它們的關(guān)系見(jiàn)圖二。

        2 課件開(kāi)發(fā)實(shí)例

        圖一 GLScene控件的特性和響應(yīng)事件

        圖二 封裝類之間關(guān)系

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

        圖四 程序效果圖

        在定義了以上類之后,就可以開(kāi)發(fā)具體的課件了。我們以面心立方體為例,來(lái)說(shuō)明上述方法的應(yīng)用過(guò)程。

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

        3 結(jié)語(yǔ)

        值得指出的是,在對(duì)OpenGL進(jìn)行類封裝之后,為這些類提供了具有常用參數(shù)的構(gòu)造函數(shù),在生成類的實(shí)例時(shí)調(diào)用帶有缺省參數(shù)的構(gòu)造函數(shù)后,開(kāi)發(fā)速度得以加快。由于固體物理中要演示的晶體結(jié)構(gòu)不需要貼圖,所以我們?cè)趹?yīng)用中沒(méi)有對(duì)貼圖進(jìn)行封裝。

        為快速開(kāi)發(fā)課件,我們?cè)诜庋b類的時(shí)候,加入了從數(shù)據(jù)文件讀取幾何體尺寸、位置和材質(zhì)參數(shù)、窗口參數(shù)、照明參數(shù)等數(shù)據(jù)的方法。這也是TOpenGLScene類創(chuàng)建的目標(biāo)-只需在數(shù)據(jù)文件中輸入?yún)?shù),在程序設(shè)計(jì)期,給出TTransform類的變換函數(shù),即可完成程序設(shè)計(jì)。

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

        [2]李東,王宏.Borland C++ Builder 5 高級(jí)開(kāi)發(fā)技術(shù)[M]. 北京:中國(guó)水利水電出版社.2000.

        [3]數(shù)碼影像技術(shù)叢書(shū)編委會(huì). Cosmo3D 程序設(shè)計(jì)指南[M]. 北京:北京希望電子出版社.2000.

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

        [5]蔡伯壎. 固體物理基礎(chǔ)[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- )男,黑龍江省哈爾濱人,碩士,副教授,從事電氣工程、計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)研究。

        猜你喜歡
        句柄子類控件
        卷入Hohlov算子的某解析雙單葉函數(shù)子類的系數(shù)估計(jì)
        關(guān)于.net控件數(shù)組的探討
        軟件(2018年7期)2018-08-13 09:44:42
        關(guān)于對(duì)稱共軛點(diǎn)的倒星象函數(shù)某些子類的系數(shù)估計(jì)
        高校圖書(shū)館持久標(biāo)識(shí)符應(yīng)用研究
        編譯程序語(yǔ)法分析句柄問(wèn)題分析與探討
        MFC應(yīng)用程序多線程混合顯示界面方法研究
        基于SPY++的軟件功能擴(kuò)展的研究
        就這樣玩會(huì)VBA中常見(jiàn)的自定義控件
        電腦迷(2012年24期)2012-04-29 00:44:03
        塊H矩陣新的子類
        關(guān)于Java繼承性的探討
        人人添人人澡人人澡人人人人| 成人久久久精品乱码一区二区三区| av免费在线播放一区二区| 女女同恋一区二区在线观看| 欧美嫩交一区二区三区| 国产日产精品一区二区三区四区的特点| 天堂aⅴ无码一区二区三区| 欧美丰满熟妇乱xxxxx图片| 自拍偷拍亚洲一区| 日韩在线观看网址| 亚洲国产精品夜男人天堂| 国产精品高清视亚洲一区二区| 邻居少妇张开腿让我爽了一夜| 国产精品美女久久久久 | 亚洲产国偷v产偷v自拍色戒| 美女扒开内裤让男生桶| 亚洲性啪啪无码AV天堂| 久久久精品国产亚洲麻色欲| 人成视频在线观看免费播放| 久久精品国产亚洲av久按摩| 青春草在线视频观看| 少妇内射兰兰久久| 一本一本久久a久久精品 | 精品一区二区久久久久久久网站| 国产在视频线精品视频二代 | 国产91在线免费| 女女同性av一区二区三区| 4455永久免费视频| 日日噜噜夜夜狠狠久久无码区| 午夜无码无遮挡在线视频| 国产一区二区精品人妖系列在线 | 久久亚洲av无码西西人体| 久久精品国波多野结衣| 日韩精品少妇专区人妻系列| 五月开心六月开心婷婷网| 97人伦色伦成人免费视频| 色欲av自慰一区二区三区| 99福利影院| 亚洲女人天堂成人av在线| 亚洲人成网站色7799| 红杏亚洲影院一区二区三区|