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

OpenGL在計算水力學后處理中的應用

2012-09-04 10:18:44張詩悅吳東偉
山東水利 2012年7期
關鍵詞:程序方法

王 雷,張詩悅,吳東偉

(河海大學,江蘇 南京 210098)

通常水力學數值模擬的結果是一系列二進制數據或ASCII數據文件,為便于分析水流運動狀態需要把這些數據圖形化,這種數據可視化軟件稱為后處理軟件。目前常用的后處理軟件是Tecplot和Surfer軟件。他們提供了繪制流速矢量圖的簡單數據接口,但這些軟件一次僅能繪制一幅靜態矢量圖或標量圖,若想生成動態效果,需要事先準備大量數據。并且這些軟件不提供源代碼或通用數據接口,所以通常不能與水力學計算程序合并編譯。因此,開發一套較完善的計算水力學軟件必須研發其獨立的后處理模塊。本課題立足于此,根據水力學模型計算的數據結果,在通過OpenGL構建的三維可視化虛擬場景中,利用底層圖形開發方式進行洪水流場的可視化模擬分析研究,在流速變化較大區域和需要重點觀測區域提取斷面,分析斷面和洪水淹沒情況,從而解決洪水流場數值可視化的問題,彌補目前存在的中間數據存儲量大、模擬時間滯后和采用商業軟件很難進行交互控制等不足。

1OpenGL概述

在計算水力學中常用的圖形有流速向量圖和流場內物理量等值圖,這些圖須具有顯示準確、便于查看以及美觀等特點。計算機高級編程語言VB、VC++和Delphi等均提供了繪圖工具。從理論上講,這些繪圖工具可以滿足流場的圖形化,但對于復雜的圖形,尤其是三維圖形,繪圖算法往往很復雜以致于難以實現。為高效地開發流場圖形化軟件,須選用圖形應用程序接口(Application Programming Interface,簡稱API)。圖形API是由計算機軟件或硬件公司開發的通用繪圖程序,其中包含了構造景物模型和實現人機交互的圖形操作函數。程序員只需要調用API指令集進行布景、建模、光照與渲染,無須考慮圖形硬件和圖形效果的算法。

目前常用的計算機圖形API有DirectX和OpenGL。DirectX僅能用于Windows系列的操作系統,而OpenGL獨立于操作系統和硬件環境,具有良好的可移植性和易用性。OpenGL的圖形操作函數十分靈活,用戶可從點、線、面等最基本的圖形開始構造自己的模型。實際上,OpenGL可以看做圖形硬件的軟件接口,其中不包含任何窗口函數。在Windows系統中,OpenGL圖形庫封裝在一個動態鏈接庫內(OPENGL32.DLL),因此,必須使用一個“窗口”系統來實現OpenGL的圖形顯示和操作。目前VB、VC++以及Delphi等高級編程平臺均可用于OpenGL的“窗口”實現。

2 流場圖形化軟件的設計和開發

2.1 流場圖形化軟件的設計

水力學計算程序大多是用FORTRAN或C語言編制,也有BASIC或PASCAL等語言。為保持軟件通用性,須采用多語言混合編程技術實現后處理模塊與計算程序間的數據傳遞。

由于VC++包含了功能強大的窗口開發框架,并易實現多語言混合編程,本文采用Visual C++調用圖形庫OpenGL實現流場的圖像顯示,使用計算機語言混合編程技術實現水力學計算程序與后處理模塊的數據傳遞,并基于VC++實現友好的人機交互界面。軟件框架如圖1所示。

2.2 流場圖形化軟件的開發

2.2.1 VC++調用OpenGL實現流場可視化

采用VC++調用OpenGL實現流場圖形化,首先須建立兩者之間的應用接口,其具體方法是將支持OpenGL的動態鏈接庫函數添加到VC++預編譯頭文件中,然后調用OpenGL中的模型函數和功能函數進行建模。OpenGL能夠建立線框模型和表面模型兩種幾何模型。在進行建模時任意復雜的三維實體須用一個個小的多邊形面來近似表示。OpenGL的建模實質上是根據所給定的頂點數據和面信息建立起各個多邊形面元,并將其存儲到顯示列表中,在需要時予以調用顯示。采用此方法可以方便地對水力學中起伏不平的河床和自由水面進行三維仿真。

繪制流速矢量圖時,可以采用3條線段組成的箭頭表示矢量;等值圖則可以采用對節點設置不同的灰度或顏色來實現。

2.2.2 基于VC++的多語言混合編程技術

為保證計算水力學后處理程序的通用性,應實現VC++與其他編程語言的混合編程。本文以常用的計算程序編程語言FORTRAN為例進行闡述。

實現混合編程的方法通常有兩種:一種是動態鏈接庫法,即將FORTRAN程序在Fortran PowerStation 4.0開發環境中做成動態鏈接庫,然后VC++程序調用此動態鏈接庫,通過數據列表實現VC++程序與FORTRAN程序的數據傳遞。

第二種方法是VC++直接調用FORTRAN可執行文件。這種方法簡單,不必對現有的FORTRAN程序進行任何改動。實現方法是在VC++程序塊中使用語句調用exe可執行文件。這種方法實際上是用存儲介質作為兩種語言數據交流的載體,代替了第一種方法中的參數列表。由于多了寫入、讀出環節,同樣的算例,第二種方法的耗時比第一種方法多,但是第一種方法要求VC++程序與FORTRAN程序對應的變量字節數應相同,否則可能得出不合理的結果,第二種方法就不必考慮這個問題。在數據量較小的情況下,兩種方法都具有較快的計算速度,均可采用。

3 以明渠水流為例

采用數值方法模擬寬淺河道中丁壩附近的流場。數值模擬方法為采用有限體積法離散求解基于坐標的準三維淺水方程,計算網格取為正交曲線網格,并采用FORTRAN語言編制計算程序。

采用第二種VC++與FORTRAN的混合編程方法,后處理程序可以清楚地顯示河床地形。圖2為河道地形高程的等值圖。丁壩布置在河床右岸,設定壩頂高程為4.0m,壩底高程0.0 m,上游河床來水流量為264 m3/s,下游恒定水位為6.4 m。這些參數通過VC++編制的用戶界面傳遞給FORTRAN程序,FORTRAN程序計算穩定后將計算結果以硬盤文件的方式輸出,再由VC++調用OpenGL將結果圖形化。圖3為丁壩附近水面處流場矢量圖。

通過實例分析可知,通過Visual C++調用圖形庫OpenGL可實現流場的圖像顯示,使用計算機語言混合編程技術可實現水力學計算程序與后處理模塊的數據傳遞,并可基于VC++編制友好的人機交互界面。

猜你喜歡
程序方法
學習方法
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
主站蜘蛛池模板: 欧美精品成人一区二区在线观看| a毛片免费在线观看| 国产日本欧美亚洲精品视| 一级香蕉视频在线观看| 亚洲无码免费黄色网址| 999精品色在线观看| 精品国产电影久久九九| 国产成人精品日本亚洲| 最新午夜男女福利片视频| 免费看黄片一区二区三区| 一边摸一边做爽的视频17国产| 欧美激情视频二区| 成人91在线| 97av视频在线观看| 99精品在线看| 热99re99首页精品亚洲五月天| 久久99这里精品8国产| 中文字幕在线免费看| 日本午夜视频在线观看| 国产永久在线视频| 国产精品无码AV中文| 亚洲综合亚洲国产尤物| 久久天天躁狠狠躁夜夜躁| 亚洲av日韩av制服丝袜| 91久久国产热精品免费| 国产天天色| 亚洲精品无码高潮喷水A| 国产精品手机在线播放| 国产性精品| 亚洲中文无码h在线观看| 国产95在线 | 精品少妇人妻一区二区| 最新加勒比隔壁人妻| 免费无码AV片在线观看国产| 日韩精品无码不卡无码| 国产午夜看片| 激情无码视频在线看| 亚洲性日韩精品一区二区| 国产超薄肉色丝袜网站| 欧美精品二区| 欧美在线综合视频| 久久夜夜视频| 日本国产在线| 无码人中文字幕| 97影院午夜在线观看视频| 中文字幕伦视频| 亚洲码一区二区三区| 四虎国产在线观看| 欧美日韩精品综合在线一区| 99在线视频精品| 亚洲色图欧美激情| 美女毛片在线| 久久亚洲精少妇毛片午夜无码| 国产人成乱码视频免费观看| 亚洲av无码成人专区| 婷婷开心中文字幕| 91色综合综合热五月激情| www中文字幕在线观看| 免费在线色| 波多野结衣无码AV在线| 亚洲精品国偷自产在线91正片| 亚洲综合第一区| 精品福利视频导航| 亚洲精品视频在线观看视频| 国产精品丝袜在线| 色偷偷av男人的天堂不卡| 成人在线亚洲| 国产高清在线观看91精品| 视频一区亚洲| 亚洲有码在线播放| 欧美怡红院视频一区二区三区| 国产内射在线观看| 99九九成人免费视频精品| 久久精品国产免费观看频道| 国产色婷婷视频在线观看| 玩两个丰满老熟女久久网| 茄子视频毛片免费观看| 91久久精品日日躁夜夜躁欧美| 91免费在线看| 精品中文字幕一区在线| 欧美日韩午夜视频在线观看| 亚洲Aⅴ无码专区在线观看q|