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

?

基于OpenGL的三維圖形顯示在精細(xì)油藏描述中的應(yīng)用

2015-01-20 11:48:39馬媛王英王曉波
電腦知識(shí)與技術(shù) 2014年36期

馬媛 王英 王曉波

摘要:現(xiàn)實(shí)中,所有的物體都是三維的。但是在計(jì)算機(jī)中,所有的三維物體必須以二維平面圖像的形式表現(xiàn)出來。將物體的三維坐標(biāo)轉(zhuǎn)換到計(jì)算機(jī)的像素位置,需要經(jīng)過幾何變換、投影變換、裁剪變換、視口變換等操作,才能正確顯示出儲(chǔ)層的三維圖像。

關(guān)鍵詞:OpenGL;三維圖形顯示;精細(xì)油藏描述

中圖分類號(hào):TP37 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)36-8764-02

1 模塊描述

對(duì)經(jīng)隨機(jī)模擬模塊和網(wǎng)格粗化模塊處理后的數(shù)據(jù)體進(jìn)行三維顯示,將所有數(shù)據(jù)以圖形的方式來表示。并顯示經(jīng)過模擬后的相模型,以及網(wǎng)格粗化后的物性參數(shù)模型。

2 設(shè)計(jì)方法

2.1 OpenGL環(huán)境和視景體設(shè)置

程序運(yùn)行時(shí),從Display3D類中進(jìn)入,調(diào)用CmainFrame類和CDoc文檔類以及Cview視圖類。設(shè)置OpenGL環(huán)境和視景體:

1) 調(diào)用CDisplay3DView::OnCreate(LPCREATESTRUCT lpCreateStruct)函數(shù),設(shè)置象素格式和OpenGL描述表。

2) 調(diào)用CDisplay3DView::OnSize(UINT nType, int cx, int cy)函數(shù)設(shè)置視景體。

3) 在程序運(yùn)行將要完成后要銷毀OpenGL描述表。

2.2 加載數(shù)據(jù)

消息函數(shù)

void OnFileOpen()

調(diào)用對(duì)話框類

CLoadDateDlg

調(diào)用函數(shù)

BOOL CStratum.ReadFile(CString filename)

BOOL CStratum.ReadColorFile(CString filename)

void rdfl(CString filename)

設(shè)計(jì)思路:

1) 打開對(duì)話框,利用對(duì)話框中的不同控件來確定打開的文件,利用對(duì)話框類中變量記錄下需要的變量;

2) 調(diào)用函數(shù)CStratum.ReadColor(CString filename),讀取顏色值和取值范圍;

3) 調(diào)用CStratum類中的函數(shù)ReadData(CString filename),讀取文件中的數(shù)據(jù);

4) 調(diào)用SearchViewBox()為多層顯示尋找合適的視見體;

5) 利用DrawScence(),調(diào)用CStratum中的繪圖函數(shù)繪制三維圖形;

6) 利用DrawScence(),調(diào)用DrawCoord()繪制坐標(biāo)軸線和WriteScale()標(biāo)注刻度;

7) 利用DrawScence(),最后繪制色表,并在界面上顯示圖形的屬性,地質(zhì)層面。

2.3 地質(zhì)層

利用布爾變量m_bDraw3D 和m_bDrawCoord來控制“地質(zhì)層”和“坐標(biāo)”的顯示和不顯示。

“剝層顯示”,利用“剝層顯示”對(duì)話框?qū)崿F(xiàn)用戶交互,得到要顯示的地質(zhì)層和地質(zhì)小層。通過函數(shù)CStratum::DrawStratum(BOOL Atrr,BOOL flag,int z,BOOL init,float thick,bool m_bBoundary)傳遞到CStratum類中。再利用DrawScence(),依賴布爾變量m_bDrawDivLayer調(diào)用CStratum中的繪圖函數(shù)繪制只要求顯示的地質(zhì)面的三維圖形。

2.4 井位

利用CWell類的成員函數(shù)讀取測(cè)井文件中的井名,在“加載井位”對(duì)話框中顯示,讓用戶選擇要顯示的井位(包括地質(zhì)層、井位)、井柱長(zhǎng)度、井柱半徑、井柱顏色、是否顯示井名以及井位顯示模式。再利用CWell類中的成員函數(shù)來繪制圖形。

2.5 色表

以布爾變量m_bDrawColorList來控制是否顯示色表。對(duì)于色表設(shè)置,以“色表設(shè)置”對(duì)話框來實(shí)現(xiàn)人機(jī)交互,修改色表顏色,色表表示的屬性值界限,保存修改后的值到rgb文件中。

2.6 邊界

“邊界裁減”調(diào)用CStratum類中的成員函數(shù)ReadIndexFile(CString filename),再以布爾變量m_bDrawBoundary3D來控制調(diào)用CStratum對(duì)象的成員函數(shù)DrawIndices(m_bAttr,m_bDef,m_DivLayer,0,m_fThick,m_bBoundary)來繪制三維圖形,這時(shí)的三維圖形是以三角形為圖元來繪制的。

“邊界線繪制”,用m_bBoundary來控制是否顯示。

“繪制側(cè)面”,用四邊形圖元來繪制出這個(gè)邊界側(cè)面,用GL_SMOOTH函數(shù)進(jìn)行插值,得到插值后的側(cè)面。

2.7 變換

主要是對(duì)地質(zhì)層圖形進(jìn)行模型變換得到用戶想要的視覺效果,包括兩個(gè)層次。一是多個(gè)地質(zhì)層間的模型變換,以地質(zhì)層為單位。一是對(duì)地質(zhì)小層進(jìn)行模型變換。

2.8 剖切

操作流程:“開始剖切”——“X方向剖切”“Y方向剖切”“任意方向剖切”。

“開始剖切”操作利用OpenGL的矩陣壓棧功能,對(duì)模型矩陣壓入單位矩陣,實(shí)現(xiàn)矩陣的初始化。這樣就使圖形的旋轉(zhuǎn)平移操作失效,保證了剖切時(shí)的的精度。

“X方向剖切”,只有點(diǎn)擊了“開始剖切”按鈕這一項(xiàng)才有效,這時(shí)菜單項(xiàng)“X方向剖切”才會(huì)有效。這里用布爾變量g_bMenu來控制菜單項(xiàng)的是否變灰。

函數(shù)GetSectionX(m_xcut,m_ycut) 得到每個(gè)地質(zhì)層的切面數(shù)據(jù)的具體算法如下:endprint

1) 得到鼠標(biāo)點(diǎn)的世界坐標(biāo)(m_xcut,m_ycut);

2) 判斷這一點(diǎn)在Y方向的第幾個(gè)網(wǎng)格節(jié)點(diǎn)上;

3) 沿X方向剖切,剖切面的上的所有點(diǎn)的y坐標(biāo)就是m_ycut;

4) 剖切面上的所有點(diǎn)的x坐標(biāo)就是這一行網(wǎng)格節(jié)點(diǎn)的x坐標(biāo);

5) 剖切面上的所有點(diǎn)的z坐標(biāo)是經(jīng)過線性插值而得到( (m_ycut-mesh.y)/dy*((mesh+1).z-mesh.z)+mesh.z);

剖切面上的所有點(diǎn)的屬性經(jīng)過線性插值而得到( (m_ycut-mesh.y)/dy*((mesh+1).attr-mesh. attr)+mesh. attr)。

3 程序流程圖

圖1 地質(zhì)層三維顯示的程序流程圖

4 結(jié)束語

目前為止,OpenGL依然是行業(yè)領(lǐng)域中最為廣泛的2D/3D 圖形 API,是一個(gè)針對(duì)圖形硬件開放的三維圖形軟件包,獨(dú)立于硬件設(shè)備、窗口系統(tǒng)和操作系統(tǒng),可以很方便在各種平臺(tái)上移植。它提供了120多個(gè)函數(shù),開發(fā)者可以用這些函數(shù)來建立三維模型和進(jìn)行三維實(shí)時(shí)交互。技術(shù)人員可以根據(jù)其三維顯示來完成油氣儲(chǔ)層的建模工作,以此指導(dǎo)精細(xì)油藏描述。

參考文獻(xiàn):

[1] 曾新平, 楊自安, 劉碧虹,等. 地質(zhì)體三維可視化建模的技術(shù)方法研究[J]. 地礦與地質(zhì), 2005, 19(107): 103-106.

[2] Liu J,Yang F.Analyzing structural evolution and the significance of oil-gas geology in Xixuan area of Shiwu Fault depression by using 3D seismic data Jianghan Shiyou Xueyuan Xuebao/Journal of Jianghan Petroleum Institute,2005(27).

[3] 吳健生,王仰麟,曾新平,等.三維可視化環(huán)境下礦體空間數(shù)據(jù)插值[J].北京大學(xué)學(xué)報(bào),2004,40(4) :635-642.

[4] 劉祚秋,周翠英,趙旭升,等.三維地層模型及可視化技術(shù)研究[J].中山大學(xué)學(xué)報(bào),2003,42(4) :41-44.

1) 得到鼠標(biāo)點(diǎn)的世界坐標(biāo)(m_xcut,m_ycut);

2) 判斷這一點(diǎn)在Y方向的第幾個(gè)網(wǎng)格節(jié)點(diǎn)上;

3) 沿X方向剖切,剖切面的上的所有點(diǎn)的y坐標(biāo)就是m_ycut;

4) 剖切面上的所有點(diǎn)的x坐標(biāo)就是這一行網(wǎng)格節(jié)點(diǎn)的x坐標(biāo);

5) 剖切面上的所有點(diǎn)的z坐標(biāo)是經(jīng)過線性插值而得到( (m_ycut-mesh.y)/dy*((mesh+1).z-mesh.z)+mesh.z);

剖切面上的所有點(diǎn)的屬性經(jīng)過線性插值而得到( (m_ycut-mesh.y)/dy*((mesh+1).attr-mesh. attr)+mesh. attr)。

3 程序流程圖

圖1 地質(zhì)層三維顯示的程序流程圖

4 結(jié)束語

目前為止,OpenGL依然是行業(yè)領(lǐng)域中最為廣泛的2D/3D 圖形 API,是一個(gè)針對(duì)圖形硬件開放的三維圖形軟件包,獨(dú)立于硬件設(shè)備、窗口系統(tǒng)和操作系統(tǒng),可以很方便在各種平臺(tái)上移植。它提供了120多個(gè)函數(shù),開發(fā)者可以用這些函數(shù)來建立三維模型和進(jìn)行三維實(shí)時(shí)交互。技術(shù)人員可以根據(jù)其三維顯示來完成油氣儲(chǔ)層的建模工作,以此指導(dǎo)精細(xì)油藏描述。

參考文獻(xiàn):

[1] 曾新平, 楊自安, 劉碧虹,等. 地質(zhì)體三維可視化建模的技術(shù)方法研究[J]. 地礦與地質(zhì), 2005, 19(107): 103-106.

[2] Liu J,Yang F.Analyzing structural evolution and the significance of oil-gas geology in Xixuan area of Shiwu Fault depression by using 3D seismic data Jianghan Shiyou Xueyuan Xuebao/Journal of Jianghan Petroleum Institute,2005(27).

[3] 吳健生,王仰麟,曾新平,等.三維可視化環(huán)境下礦體空間數(shù)據(jù)插值[J].北京大學(xué)學(xué)報(bào),2004,40(4) :635-642.

[4] 劉祚秋,周翠英,趙旭升,等.三維地層模型及可視化技術(shù)研究[J].中山大學(xué)學(xué)報(bào),2003,42(4) :41-44.

1) 得到鼠標(biāo)點(diǎn)的世界坐標(biāo)(m_xcut,m_ycut);

2) 判斷這一點(diǎn)在Y方向的第幾個(gè)網(wǎng)格節(jié)點(diǎn)上;

3) 沿X方向剖切,剖切面的上的所有點(diǎn)的y坐標(biāo)就是m_ycut;

4) 剖切面上的所有點(diǎn)的x坐標(biāo)就是這一行網(wǎng)格節(jié)點(diǎn)的x坐標(biāo);

5) 剖切面上的所有點(diǎn)的z坐標(biāo)是經(jīng)過線性插值而得到( (m_ycut-mesh.y)/dy*((mesh+1).z-mesh.z)+mesh.z);

剖切面上的所有點(diǎn)的屬性經(jīng)過線性插值而得到( (m_ycut-mesh.y)/dy*((mesh+1).attr-mesh. attr)+mesh. attr)。

3 程序流程圖

圖1 地質(zhì)層三維顯示的程序流程圖

4 結(jié)束語

目前為止,OpenGL依然是行業(yè)領(lǐng)域中最為廣泛的2D/3D 圖形 API,是一個(gè)針對(duì)圖形硬件開放的三維圖形軟件包,獨(dú)立于硬件設(shè)備、窗口系統(tǒng)和操作系統(tǒng),可以很方便在各種平臺(tái)上移植。它提供了120多個(gè)函數(shù),開發(fā)者可以用這些函數(shù)來建立三維模型和進(jìn)行三維實(shí)時(shí)交互。技術(shù)人員可以根據(jù)其三維顯示來完成油氣儲(chǔ)層的建模工作,以此指導(dǎo)精細(xì)油藏描述。

參考文獻(xiàn):

[1] 曾新平, 楊自安, 劉碧虹,等. 地質(zhì)體三維可視化建模的技術(shù)方法研究[J]. 地礦與地質(zhì), 2005, 19(107): 103-106.

[2] Liu J,Yang F.Analyzing structural evolution and the significance of oil-gas geology in Xixuan area of Shiwu Fault depression by using 3D seismic data Jianghan Shiyou Xueyuan Xuebao/Journal of Jianghan Petroleum Institute,2005(27).

[3] 吳健生,王仰麟,曾新平,等.三維可視化環(huán)境下礦體空間數(shù)據(jù)插值[J].北京大學(xué)學(xué)報(bào),2004,40(4) :635-642.

[4] 劉祚秋,周翠英,趙旭升,等.三維地層模型及可視化技術(shù)研究[J].中山大學(xué)學(xué)報(bào),2003,42(4) :41-44.

蒙山县| 兴海县| 宜城市| 日喀则市| 龙江县| 阳谷县| 姜堰市| 牟定县| 高碑店市| 大同县| 山阳县| 淮北市| 龙胜| 长宁区| 扶风县| 哈巴河县| 涞水县| 卢龙县| 故城县| 景宁| 乌拉特中旗| 湾仔区| 车险| 闻喜县| 营口市| 大化| 株洲市| 萝北县| 曲麻莱县| 手机| 祁东县| 南郑县| 仪陇县| 松阳县| 纳雍县| 新绛县| 广宁县| 延川县| 美姑县| 洛川县| 伊吾县|