国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于OpenGL的虛擬仿真實(shí)驗(yàn)設(shè)計(jì)

2019-07-02 12:12侯冬曼陳武喝馬佳洪
實(shí)驗(yàn)室研究與探索 2019年6期
關(guān)鍵詞:光管偏振光邁克爾

侯冬曼, 陳武喝, 馬佳洪

(華南理工大學(xué) 物理與光電學(xué)院, 廣州 510641)

0 引 言

隨著計(jì)算機(jī)技術(shù)的發(fā)展,多媒體技術(shù)在教學(xué)中發(fā)揮著越來越重要的作用[1-2],不再局限于作為PPT演示[3]、動(dòng)畫展示,虛擬實(shí)驗(yàn)室[4-6]應(yīng)運(yùn)而生。目前虛擬仿真技術(shù)多種多樣,各有優(yōu)勢(shì)、競相發(fā)展,常用的有flash[7-8]、Java[9]等。近幾年,隨著3D顯示技術(shù)的進(jìn)步,虛擬仿真向著3D顯示的方向發(fā)展,VRML[10]、Java3D[11]、開放式圖形庫(Open Graphics Library,OpenGL)[12]等虛擬仿真技術(shù)得到了廣泛應(yīng)用。

分光計(jì)[13]是基礎(chǔ)物理實(shí)驗(yàn)教學(xué)的常用儀器,它的基本結(jié)構(gòu)是許多光學(xué)儀器的基礎(chǔ),既能夠培養(yǎng)學(xué)生的基本實(shí)驗(yàn)技能,又能培養(yǎng)學(xué)生應(yīng)用理論知識(shí)解決實(shí)際問題的能力。邁克爾遜干涉儀[14-15]設(shè)計(jì)巧妙,測(cè)量極其精密,是近代許多干涉儀的基礎(chǔ)。光的干涉和衍射現(xiàn)象提示了光的波動(dòng)性,而單縫衍射[16]是衍射現(xiàn)象中最基本也是最典型的例子。研究衍射現(xiàn)象及其規(guī)律,在理論上和實(shí)踐上都有重要意義。光的偏振直接有力地證明光是橫波,偏振現(xiàn)象已廣泛應(yīng)用于科研和生產(chǎn)實(shí)際中,對(duì)偏振光的觀察和分析,能有效加深對(duì)光偏振基本規(guī)律的理解[13]。

然而這些實(shí)驗(yàn)操作步驟繁雜,或操作的現(xiàn)象只能操作者一人看到,或儀器多雜難辨,不便于實(shí)驗(yàn)講解。因此,在編程軟件Visual C++框架下,采用OpenGL編程制作了虛擬三維模型,拓展了實(shí)驗(yàn)教學(xué)方式,開辟了一條探索物理類虛擬仿真實(shí)驗(yàn)項(xiàng)目的新途徑。

1 OpenGL編程簡介

OpenGL是一個(gè)跨編程語言、跨平臺(tái)的專業(yè)的圖形程序接口,是高性能三維圖形編程和交互式視景處理標(biāo)準(zhǔn),包括核心函數(shù)庫、實(shí)用函數(shù)庫、輔助函數(shù)庫等,有250個(gè)函數(shù)。這些函數(shù)具有以下8個(gè)方面功能:幾何建模、幾何變換、顏色設(shè)置、光照和材質(zhì)設(shè)置、紋理映射、位圖顯示和圖像增強(qiáng)、雙緩存以及交互選擇。通過幾何建模和幾何變換可以構(gòu)建復(fù)雜的三維場景;通過顏色設(shè)置、光照和材質(zhì)設(shè)置、紋理映射、位圖顯示和圖像增強(qiáng)可以模擬接近真實(shí)世界的視覺效果;通過幾何變換、雙緩存可以實(shí)現(xiàn)實(shí)時(shí)、流暢的動(dòng)畫效果;通過交互選擇可以實(shí)現(xiàn)交互操作。

OpenGL只是一個(gè)圖形接口,需要在一定的開發(fā)環(huán)境中使用,采用編程環(huán)境是Visual C++。C++是一門面向?qū)ο蟮恼Z言,具有語言簡練、靈活高效、易于移植的特點(diǎn)。Visual C++提供了MFC類庫,擴(kuò)展了C++類層次結(jié)構(gòu),使開發(fā)Windows應(yīng)用程序更加方便;一般性的界面由Visual C++自己生成,用戶只需要添加自己要實(shí)現(xiàn)的功能。

OpenGL的繪圖方式和Windows的繪圖方式是不同的,Windows采用的是圖形設(shè)備接口(Graphic Device Interface,GDI)繪圖,而OpenGL采用的是渲染描述表(Rendering Context,RC)繪圖,而且使用特殊像素格式。因此,在Visual C++環(huán)境下開發(fā)OpenGL應(yīng)用程序必須為OpenGL創(chuàng)建渲染描述表并設(shè)置適合OpenGL的像素格式。

2 虛擬實(shí)驗(yàn)儀器的設(shè)計(jì)與調(diào)整

基于OpenGL,本文構(gòu)建了分光計(jì)、邁克爾遜干涉、光的衍射和偏振等三維模型,和實(shí)物儀器一樣,各個(gè)部件可以通過鼠標(biāo)操作,操作結(jié)果及實(shí)驗(yàn)現(xiàn)象實(shí)時(shí)顯示,可以進(jìn)行相應(yīng)的虛擬測(cè)量,結(jié)果符合物理規(guī)律。

2.1 程序設(shè)計(jì)

虛擬儀器不但模型和實(shí)物儀器一致,而且各個(gè)部件跟實(shí)物儀器一樣可調(diào)。在建模時(shí),已經(jīng)將實(shí)現(xiàn)調(diào)節(jié)的幾何變換函數(shù)(如glTranslatef、glRotatef)的參數(shù)設(shè)置為變量,通過調(diào)節(jié)這些變量,就可以實(shí)現(xiàn)儀器的調(diào)節(jié)。

以分光計(jì)為例,要實(shí)現(xiàn)平行光管的調(diào)節(jié),將鼠標(biāo)移動(dòng)到其調(diào)節(jié)橫向(或縱向)調(diào)節(jié)螺絲上,通過滾動(dòng)鼠標(biāo)滾輪,可以改變橫向(或縱向)傾斜度變量的數(shù)值,程序會(huì)實(shí)時(shí)重新繪制模型,顯示調(diào)節(jié)效果,其部分代碼如下:

void CRenderView::Lightpipe(GLenum RenderMode)

{

glPushMatrix ();

//平行光管同軸旋轉(zhuǎn)

glTranslatef (0.0, 0.0, 48.0);

glRotatef (m_Rlightpipe4, 0.0, 1.0, 0.0);

glTranslatef (0.0, 0.0, -48.0);

//平行光管傾度旋轉(zhuǎn)

glTranslatef (0.0, 48.5, 26.0);

glRotatef (m_Rlightpipe3, 1.0, 0.0, 0.0);

glTranslatef (0.0, -48.5, -26.0);

//平行光管

glPushMatrix ();

glPushMatrix ();

//平行光管

glTranslatef (0.0, 0.0, -30.0);

glTranslatef (1.5, 6.5, 3.0);

DrawPipe(m_pqobj, 3.0, 4.0, 4.0, 35.0);

//平行光管透鏡

glTranslatef (0.0, 0.0, -35.1);

DrawPipe(m_pqobj, 2.9, 4.1, 4.1, 3.0);

glPopMatrix ();

glPopMatrix ();

glPopMatrix ();

}

2.2 程序界面

程序界面除了虛擬儀器模型,一般還包括菜單欄、工具欄、狀態(tài)欄和觀察視場4個(gè)部分,分光計(jì)和邁克爾遜實(shí)驗(yàn)儀器增加了刻度盤讀數(shù)。以分光計(jì)為例進(jìn)行講解,虛擬分光計(jì)模型如圖1所示。菜單欄及其下拉菜單可實(shí)現(xiàn)程序的所有操作、設(shè)置;工具欄為本程序的常規(guī)操作,如取放平面鏡、棱鏡、光柵等;狀態(tài)欄顯示當(dāng)下的操作說明。儀器模型可以從不同角度觀察并調(diào)節(jié),目鏡視場實(shí)時(shí)顯示分光計(jì)目鏡中看到的視場,游標(biāo)盤讀數(shù)可直接從界面上讀出。

圖1 虛擬分光計(jì)程序界面

虛擬實(shí)驗(yàn)儀器操作非常簡單,實(shí)驗(yàn)操作約定:將鼠標(biāo)移動(dòng)到可操作部件上,調(diào)節(jié)滾輪就可以對(duì)該部件進(jìn)行調(diào)節(jié)(包括儀器的開啟和關(guān)閉)。鼠標(biāo)點(diǎn)擊空白位置,調(diào)節(jié)滾輪即對(duì)整個(gè)虛擬實(shí)驗(yàn)儀器進(jìn)行左右旋轉(zhuǎn)操作。按住鼠標(biāo)左鍵拖動(dòng),即對(duì)整個(gè)實(shí)驗(yàn)裝置進(jìn)行旋轉(zhuǎn)操作。

2.3 功能實(shí)現(xiàn)

利用OpenGL構(gòu)建了動(dòng)態(tài)可調(diào)的三維模型,同時(shí)采用Windows的GDI畫圖模擬實(shí)驗(yàn)的現(xiàn)象??蓪?shí)現(xiàn)的功能包括但不僅僅包括分光計(jì)的調(diào)節(jié)、折射、衍射實(shí)驗(yàn),邁克爾遜干涉,單縫衍射和偏振光等。實(shí)驗(yàn)現(xiàn)象會(huì)根據(jù)儀器的調(diào)節(jié)實(shí)時(shí)顯示,基本實(shí)現(xiàn)物理實(shí)驗(yàn)教學(xué)中的所有功能。

2.3.1 分光計(jì)

在虛擬分光計(jì)上可以進(jìn)行目鏡調(diào)節(jié)、望遠(yuǎn)鏡調(diào)節(jié)、平行光管調(diào)節(jié)以及各半調(diào)節(jié)等。以各半調(diào)節(jié)為例進(jìn)行講解。

各半調(diào)節(jié):放上平面鏡,找到綠十字;開始時(shí),綠十字一般不在水平準(zhǔn)線的位置[見圖2(a)]。經(jīng)各半調(diào)節(jié)后,不管平行鏡的哪一面正對(duì)望遠(yuǎn)鏡筒,綠十字都在上水平準(zhǔn)線的高度[見圖2(b)]。

(a)

(b)

三棱鏡折射實(shí)驗(yàn)。三棱鏡折射現(xiàn)象是根據(jù)折射公式實(shí)時(shí)計(jì)算的,折射條紋的偏轉(zhuǎn)角度會(huì)根據(jù)三棱鏡位置的調(diào)節(jié)而改變,因此可以在虛擬分光計(jì)上運(yùn)用最小偏向角法測(cè)棱鏡折射率,如圖3所示。

光柵衍射實(shí)驗(yàn)。衍射現(xiàn)象也是根據(jù)衍射公式實(shí)時(shí)計(jì)算的,衍射條紋的偏轉(zhuǎn)角度會(huì)根據(jù)光柵位置的調(diào)節(jié)而改變,也可以利用最小偏向角法或者垂直光柵法進(jìn)行相關(guān)的測(cè)量,如圖4所示。

圖3 三棱鏡折射實(shí)驗(yàn)

圖4 光柵衍射實(shí)驗(yàn)

2.3.2 邁克爾遜干涉儀

邁克爾遜干涉儀結(jié)構(gòu)復(fù)雜,主要由光源、分光板、補(bǔ)償板、反光鏡、調(diào)節(jié)拉桿螺絲、大轉(zhuǎn)輪和微調(diào)轉(zhuǎn)輪等部分構(gòu)成,如圖5所示。光源包括鈉光、氦氖激光和白光,可模擬等傾干涉條紋、等厚干射條紋等。

圖5 邁克爾遜干涉儀外觀

等傾干涉條紋的調(diào)整。調(diào)節(jié)反射鏡M2背后的傾斜度調(diào)節(jié)螺絲,使出現(xiàn)干涉條紋[見圖6(a)]。然后通過反復(fù)調(diào)節(jié)水平、垂直拉桿螺絲,把等厚干涉條紋調(diào)節(jié)成等傾干涉條紋,如圖6(b)所示。最后,為了獲得稀疏等傾干涉條紋,需要調(diào)節(jié)大轉(zhuǎn)輪、微調(diào)轉(zhuǎn)輪使干涉條件變稀疏,如圖6(c)所示。

白光等厚干涉條紋的調(diào)整。將光源換成白光,調(diào)節(jié)水平(垂直)拉桿螺絲,使等傾干涉條紋變成弧形,如圖7(a)所示。然后調(diào)節(jié)反射鏡M1的位置,使干涉條紋變成直線形的等厚干涉條紋,如圖7(b)所示。

(a)

(b)

(c)

(a)

(b)

2.3.3 虛擬單縫衍射實(shí)驗(yàn)

虛擬單縫衍射實(shí)驗(yàn)較為簡單,可模擬菲涅爾衍射實(shí)驗(yàn)及測(cè)量其光強(qiáng)分布。通過調(diào)節(jié)狹縫上方的旋鈕B使狹縫大小合適,在顯示板上觀察到菲涅爾衍射現(xiàn)象,如圖8所示。再選擇工具中的“測(cè)量”即可對(duì)光強(qiáng)分布進(jìn)行測(cè)量。

圖8 菲涅爾衍射實(shí)驗(yàn)程序界面

2.3.4 偏振光模擬實(shí)驗(yàn)

偏振光模擬實(shí)驗(yàn)界面簡單,操作便捷,可模擬線偏振光、圓偏振光以及橢圓偏振光的實(shí)驗(yàn)現(xiàn)象和操作。圖9為圓偏振光的實(shí)驗(yàn)現(xiàn)象,并顯示出了波形。

圖9 圓偏振光實(shí)驗(yàn)

3 結(jié) 語

在Visual C++框架下,基于OpenGL設(shè)計(jì)了虛擬分光計(jì)、邁克爾遜干涉儀、單縫衍射和光的偏振等儀器的三維模型,模擬了儀器的各種操作和調(diào)節(jié)步驟,實(shí)時(shí)顯示虛擬操作的實(shí)驗(yàn)現(xiàn)象和測(cè)量結(jié)果,基本可滿足物理實(shí)驗(yàn)教學(xué)中的所有功能。這些三維模型可以作為實(shí)驗(yàn)課件用于實(shí)驗(yàn)講解,也可以作為預(yù)習(xí)或者復(fù)習(xí)工具提供給學(xué)生,以提高學(xué)生的學(xué)習(xí)興趣和學(xué)習(xí)熱情。

實(shí)踐證明:OpenGL是虛擬仿真儀器制作的有力工具,既可以模擬相對(duì)復(fù)雜的分光計(jì),也可以用于制作其它物理類虛擬儀器;虛擬儀器對(duì)物理實(shí)驗(yàn)教學(xué)有很大的促進(jìn)作用,而且有助于緩解高校實(shí)驗(yàn)資源短缺和日益緊張的空間資源。一言以蔽之,虛擬仿真儀器應(yīng)該進(jìn)行推廣,以推進(jìn)實(shí)驗(yàn)教學(xué)改革,提高教學(xué)質(zhì)量和效率。

當(dāng)然,虛擬分光計(jì)還存在一些不足,比如儀器的界面還不夠逼真,無法網(wǎng)絡(luò)應(yīng)用。下一步工作還需不斷改進(jìn)加強(qiáng),制作更多更好的虛擬物理實(shí)驗(yàn)儀器。

猜你喜歡
光管偏振光邁克爾
基于偏振光顯微鏡與λ波長補(bǔ)償器聯(lián)用在生藥顯微鑒別中的應(yīng)用研究
Open Basic Science Needed for Significant and Fundamental Discoveries
導(dǎo)光管照明技術(shù)在農(nóng)村地下車庫中的應(yīng)用及經(jīng)濟(jì)效益研究
發(fā)現(xiàn)高潛人才:共情與謙卑
平行光管在測(cè)繪儀器檢定中的運(yùn)用研究
部分偏振光分解的研究①
一種車載小直角棱鏡方位自動(dòng)測(cè)量系統(tǒng)誤差分析
線偏振光振動(dòng)合成矢量端點(diǎn)軌跡方程的推導(dǎo)
針刺結(jié)合偏振光疼痛治療儀治療三叉神經(jīng)痛30例
折轉(zhuǎn)光管在光電瞄準(zhǔn)系統(tǒng)中的應(yīng)用