熱門關鍵字:谷物容重器 降落值測定儀 粉質儀 拉伸儀 羅維朋比色計 纖維素測定儀 脂肪測定儀 油脂煙點測定儀 凱氏定氮儀 錘式旋風磨  硬度計

新技藝在多維勘驗及摹擬儀表里的踐行

來源: http://yuanweishulai.cn  類別:實用技術  更新時間:2015-03-23  閱讀

  OpenGL和圖形顯示OpenGL是一個開放圖形庫。而更嚴格地講,OpenGL被定義為“圖形硬件的一種軟件接口”,它被設計成獨立于硬件的高效接口,可以在很多硬件平臺上實現(xiàn)。不同平臺的具體實現(xiàn)方式可能有所差異,但其接口必須符合OpenGL規(guī)范,因此代碼具有高度的可移植性。OpenGL標準組成部分包括核心庫與實用庫,共有300多個函數(shù),可以運行在任何OpenGL的工作平臺上。

  MicrosoftWindows在內部已經通過動態(tài)鏈接庫的形式對這兩個函數(shù)庫提供了支持,對大量應用可以直接編程進行。因此,本系統(tǒng)選用了OpenGL做為三維表現(xiàn)的底層開發(fā)工具。

  作為圖形顯示的開發(fā)庫,OpenGL具有執(zhí)行速度快、可移植性好的優(yōu)點。但OpenGL只包含最基本的繪圖和渲染方式,沒有提供幾何實體圖元,在系統(tǒng)中需要封裝相應的幾何繪圖函數(shù)、滿足測試需求的三維場景描述函數(shù)、平臺的外觀和構建函數(shù)等等。

  目前,本系統(tǒng)平臺能夠滿足測試對三維場景的需求,具有較完備的函數(shù)描述和包裝,能夠實現(xiàn)建立幾何形體和虛擬儀器、產生光照效果、進行紋理映射等各種與圖形顯示有關的功能。這些功能已經實現(xiàn)。

  三維坐標的構建要在三維空間中繪圖必須先建立一個三維坐標系。OpenGL提供了投影視圖用以建立三維空間的參照系,操作者只需要關注如何在這個參照系中繪圖,將其投影到計算機屏幕的工作則由OpenGL完成。但OpenGL建立的參考系是基于一般的計算機圖形顯示,它的原點位于計算機屏幕中心,并以計算機屏幕為XY平面,Z軸正方向指向用戶,但實際中需要不同的。為此,系統(tǒng)建立了這兩種參考系的描述函數(shù),以便于模型建立及觀察。函數(shù)中:lengthX:X軸長度,lengthY:Y軸長度,lengthZ:Z軸長度;intervalX:X軸坐標單位間隔,intervalY:Y軸坐標單位間隔,intervalZ:Z軸坐標單位間隔;colorX、colorY、colorZ:坐標軸顏色,gridColor:網(wǎng)格顏色,gridPattern:網(wǎng)格的線型,為0時不繪制網(wǎng)格三維場分布的描述和構建計算機屏幕是一個二維的平面,對于一維的分布,如一個探測器返回的溫度隨時間變化的情況,可以直接在屏幕上通過一個二維的曲線來描述。對于二維的分布,如在一個平面上的多個探測器返回的溫度,則一般可以通過在一個二維點處用高度來描述該點處的值,最終形成一個以該二維坐標為底面的一個曲面來展示,此時通過將一個三維的曲面以不同視角投影到二維屏幕來展示一個三維形貌。

  但對于三維場,上述的方法難以再適用。

  解決三維場分布的問題可以通過引入第四維―――顏色維的方式來解決,即用三維空間中點的位置處的顏色來描述該點處的值,此時有兩種方式選擇,一是用不同顏色值來表示該點的值(一般按由紅到藍表示由強到弱),一種是用顏色的明暗強度來表示值的大小;當然也可將二者結合使用。由于用不同顏色值表示不同的值需要約定,因此系統(tǒng)中主要使用的是第二種方式,即在空間中按照指定位置測試系列分布點的值,使用者可指定某顏色,并用顏色的明暗強度來表示場強大小。保持顏色的明暗將使用相同比例不同數(shù)值的RGB方式來表征。

  例如用黃色來表示場強強弱,在A點處的場強最大,我們可以將該點的顏色設為(1,1,0);在B點處的場強為A點的90%,則B點的顏色設為(0.9,0.9,0),依此類推。需要注意的是RGB分量的最大值必須限制在0到1之間,所以點的顏色通常要歸一化,即把強度最大的點顏色分量限制為1。同時,為了觀察的需要,系統(tǒng)提供了點、網(wǎng)格、曲面的三種面形表現(xiàn)形式,如圖1(a,b,c)。

  確定三維場空間中各個點的位置及顏色后,需要考慮如何將各點聯(lián)系起來展示出整體效果。系統(tǒng)考慮的方式是取定某個坐標,即在空間中固定一個觀察平面,然后根據(jù)該平面上的二維點位置及顏色進行渲染,這樣就得到場在該觀察平面上的分布情況。逐個平面觀察,即可獲得整個場的三維分布,如圖2為一個高斯場在不同z坐標下的截圖分布。

  圖2的方式適合于場點分布均勻的情況,對于另一些情形,我們并不需要分布均勻的場點,這時可以在場點之間通過連線方式繪制。比如兩個電荷的空間電場,我們可以考慮從一個電荷引出場線:首先設置好一定步長比如1,然后選擇一個方向,從電荷中心沿該方向延伸1的距離,記錄下該處的位置及場強,然后沿該點場強方向再延伸1的距離,并記錄位置、場強,重復以上步驟直到超出觀察空間或場強已小到無需考慮,最后將記錄下的點連接起圖2高斯場在不同z坐標下的截面(a)點(b)網(wǎng)格(c)曲面圖1不同的面形表現(xiàn)模來,這就形成了一條場線。選擇不同的初始方向并重復上述步驟即可得到空間中的電場分布。如圖3。

  上述示例的場強度基本是用單色的亮度表達,由于人眼對顏色更敏感,系統(tǒng)中還提供了用不同顏色表現(xiàn)不同強度,一般由―――藍―――紅表示由弱―――強。同時,測試獲得的點是離散的,不利于對整體的描述,為此系統(tǒng)對面形(平面、曲面)均提供了插值方式的面形描述。系統(tǒng)還可直接對空間進行平面切片,直接觀察多個截圖的方式,觀察空間的場分布。圖4為一個每面8×8點的溫度場分布的彩色切片描述,共4個面。其中4(a)為點模式表示,4(b)為系統(tǒng)插值后的面分布,4(c)為一個點面結合的表示。

  結束語通過VC和OpenGL編寫的系統(tǒng),可以良好地展示三維場的分布結構和虛擬儀器的三維形貌,包括其不同部件運動的形貌。相信系統(tǒng)能夠在虛擬儀器應用和三維場分布描述等方面進一步展現(xiàn)其特點和能力。

  【中國糧油儀器在線】部分信息來自互聯(lián)網(wǎng),力求安全及時、準確無誤,目的在于傳遞更多信息,并不代表本網(wǎng)對其觀點贊同或對其真實性負責。