本發(fā)明涉及地質(zhì)體三維可視化分析技術(shù),尤其涉及一種三維地質(zhì)體模型的序貫剖面動態(tài)顯示方法。
背景技術(shù):
三維地質(zhì)建模及可視化分析技術(shù)是地質(zhì)信息科技領(lǐng)域的核心技術(shù)之一,也是三維地學(xué)信息系統(tǒng)建設(shè)的關(guān)鍵和難點。具有真三維數(shù)據(jù)結(jié)構(gòu)的三維地質(zhì)模型,可以很好地表達地質(zhì)實體的空間形態(tài),是地質(zhì)成分、結(jié)構(gòu)、構(gòu)造和地質(zhì)數(shù)據(jù)在三維可視化空間的有效載體。而基于布爾運算(即矢量剖切)技術(shù)的地質(zhì)切片(虛擬剖面),可以直接從三維地質(zhì)體模型上快速提取縱橫交錯的虛擬地質(zhì)剖面,直觀地顯示地下某一位置的地層結(jié)構(gòu)及地質(zhì)構(gòu)造的空間形態(tài),為發(fā)現(xiàn)地下隱伏礦床、揭示地質(zhì)災(zāi)害隱患、進行地下空間開發(fā)利用等提供有力的支持。但是,孤立的地質(zhì)剖面不能很好地表征地質(zhì)結(jié)構(gòu)、構(gòu)造及地質(zhì)現(xiàn)象的空間連續(xù)變化,特別是對于剖面之間的空白區(qū)域,難以進行動態(tài)可視化巡查和分析。只有借鑒醫(yī)學(xué)CT掃描的思路,并且反用其方法,以序列地質(zhì)切片(即序貫剖面)動態(tài)顯示的方式,從多個方向?qū)θS地質(zhì)模型進行動態(tài)的序列化顯示,才能夠有效地解決這個問題。為此,有必要提出并研發(fā)出一種專門針對三維地質(zhì)體虛擬序貫剖面實時生成和展示的動態(tài)顯示方法。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題在于針對現(xiàn)有技術(shù)中的缺陷,提供一種三維地質(zhì)體模型的序貫剖面動態(tài)顯示方法。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:一種三維地質(zhì)體模型的序貫剖面動態(tài)顯示方法,包括:
1)接收待剖切的地質(zhì)體模型PH{PHi}(1≤i≤N),確定巡查方向的單位方向向量對應(yīng)方向的巡查路程和單程的總幀數(shù)C;其中,N為地質(zhì)體模型的地層總數(shù);
2)根據(jù)地質(zhì)體模型最大包圍盒和巡查方向,計算并確定初始剖切面S的位置;初始剖切面S與巡查方向垂直,即其法線方向的單位向量為巡查方向的單位向量;
3)獲取該巡查方向上地質(zhì)模型的起止剖面最大跨越距離L,根據(jù)單程總幀數(shù)C,計算每一幀剖切面需移動的步長D=L/C;
4)初始化剖切面對象列表ListC,同時初始化當(dāng)前幀標(biāo)記變量t=0,對應(yīng)于具有N層地層的地質(zhì)體模型PH,設(shè)置N個與之相對應(yīng)的線程T[N],讓每一個線程分別同時完成對應(yīng)地質(zhì)體模型的剖切計算和可視化表達;
5)每一幀計算之前,判斷N個拷貝剖切面和剖切面對象列表ListC中對象是否存在,如存在則銷毀這些對象;
6)剖切面對象S進行拷貝獲得N個剖切面對象S,對于每一個線程T[i],對剖切面對象S與地質(zhì)體PHi進行矢量剖切運算,,將得到的剖面對象添加到列表ListC中,并將PHi的顏色及其它屬性賦予該剖面對象,N個線程同時對N層地質(zhì)體對象進行處理;所述其它屬性包括巖性、巖相、成因。
7)根據(jù)ListC中每個剖面對象的拓撲結(jié)構(gòu)和屬性信息,分別構(gòu)建N個地層的地質(zhì)剖面并加以可視化表達;
8)沿巡查方向?qū)⑵是忻鍿上每個點平移步長D,更新剖切面對象S,并令當(dāng)前幀標(biāo)記變量t=t+1,對于剖切面S上任意一點(x,y,z),平移后的坐標(biāo)(x',y',z')可表示如下:
9)判斷t<N是否成立,如果成立則轉(zhuǎn)步驟(5)進行下一幀的顯示,否則轉(zhuǎn)下一步;
10)將剖切面S恢復(fù)到初始位置,并令t=0,進行再一輪的巡查與顯示;
11)根據(jù)獲取的指令信息判斷掃描是否結(jié)束,如果未結(jié)束,則轉(zhuǎn)步驟5)繼續(xù)重復(fù)該方向上的巡查,否則轉(zhuǎn)下一步;
12)銷毀所有巡查線程和對象的暫存數(shù)據(jù),結(jié)束該方向的巡查與顯示。
按上述方案,所述步驟2)中剖切面S的初始位置為與地質(zhì)體模型PH相切的負方向一端。
本發(fā)明產(chǎn)生的有益效果是:
1.本發(fā)明借鑒了CT掃描的理念并反用之,以序貫剖面動態(tài)顯示的方式首次實現(xiàn)了對三維地質(zhì)體模型結(jié)構(gòu)、構(gòu)造的可視化動態(tài)巡查,使其空間分析更加直觀。
2.本發(fā)明結(jié)合三維地質(zhì)體矢量剖切與多線程技術(shù),可同時計算每一層地質(zhì)體模型的不同線程的序貫剖面,提高了處理效率,能夠滿足實時動態(tài)巡查的需求。
3.本發(fā)明通過定制界面進行巡查方向、線程、顯示圖像幀數(shù)等參數(shù)的控制,可從多個角度對三維地質(zhì)模型進行動態(tài)巡查,具有很好的靈活性、可控性和自動化程度。
4.本發(fā)明具有很好的實用性和普適性,可以嵌入三維地質(zhì)建模系統(tǒng)、地質(zhì)信息系統(tǒng)、地理信息系統(tǒng)和地質(zhì)過程模擬系統(tǒng)等空間信息系統(tǒng)軟件中推廣應(yīng)用。
附圖說明
下面將結(jié)合附圖及實施例對本發(fā)明作進一步說明,附圖中:
圖1是本發(fā)明實施例的工作流程圖;
圖2是本發(fā)明實施例的矢量剖切過程中待巡視地質(zhì)體模型PH和處于初始位置的剖切面S示意圖;
圖3是本發(fā)明實施例的矢量剖切過程中當(dāng)t為k時剖切面S與待巡查地質(zhì)體模型PH的空間關(guān)系示意圖;
圖4是本發(fā)明實施例的矢量剖切過程中單層地質(zhì)體模型PHi與t為k時的剖切面S的矢量剖切過程示意圖;
圖5是本發(fā)明實施例的矢量剖切過程中所有地質(zhì)體模型進行矢量剖切后得到的地質(zhì)切片列表ListC;
圖6是本發(fā)明實施例的矢量剖切過程中多線程處理過程示意圖;
圖7是本發(fā)明實施例的橫縱兩個方向同時進行動態(tài)顯示的應(yīng)用示例圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明提供了一種基于實時布爾運算(矢量剖切)的三維地質(zhì)體模型序貫剖面動態(tài)顯示方法,首先根據(jù)待巡查的三維地質(zhì)體模型的最大包圍盒及用戶給定的多個巡查方向,自動計算并獲取每一方向上的剖切面初始位置;再對于某一指定的方向,根據(jù)輸入的單程總幀數(shù)和該方向起止剖面的總距離,計算每一幀需移動的步長;然后分別針對每個層位的地質(zhì)模型,按照巡視方向的各個線程逐一完成對應(yīng)地質(zhì)體模型與剖切面的矢量剖切運算,生成每個方向每個線程的可視化序貫剖面,其中包含空間拓撲結(jié)構(gòu)和屬性特征;最后,按照巡查方向和移動步長依次展示序貫地質(zhì)剖面,實現(xiàn)整個地質(zhì)體模型的動態(tài)顯示。
下面結(jié)合具體實施例和說明書附圖,對本發(fā)明作進一步說明:
圖1所示為本發(fā)明方法的流程圖。首先輸入待巡視地質(zhì)體模型PH{PHi}(1≤i≤N),并指定多個巡視方向和每個方向上對應(yīng)的單程圖像總幀數(shù)。以下結(jié)合圖1,給出某一指定方向的三維地質(zhì)體模型序貫剖面動態(tài)顯示實例,具體實施過程如下:
(1)根據(jù)指定的巡查方向確定該方向的單位方向向量和單程剖面總幀數(shù)C;
(2)根據(jù)三維地質(zhì)體模型的最大包圍盒和選查方向,自動計算并確定剖切面S的初始位置,并確保剖切面S與向量垂直,而且剖切面S的初始位置為與地質(zhì)體模型PH相切的負方向一端,如圖2所示;
(3)獲取巡查方向上地質(zhì)模型起止剖切面的最大跨越距離L,根據(jù)單程總幀數(shù)C,計算每一幀剖切面需移動的步長D=L/C;
(4)初始化剖面對象列表ListC,同時初始化當(dāng)前幀標(biāo)記變量t=0,如圖6所示,對應(yīng)于具N層地層的地質(zhì)體模型PH,設(shè)置N個與之相對應(yīng)的巡查線程T[N];
(5)每一幀計算之前,判斷N個拷貝剖切面和剖面對象列表ListC中對象是否存在,如存在則銷毀這些對象,結(jié)束上一幀圖像的掃描,轉(zhuǎn)下一步進行新一幀的計算;
(6)如圖6所示,拷貝N個剖切面對象S,對于每一個巡查線程T[i],分別分配一個剖切面S和與之對應(yīng)的地層體模型PHi,并進行面S與體PHi的矢量剖切運算,將得到的剖面對象添加到列表ListC中,并將PHi的顏色及其它屬性賦予該剖面(切片)對象,N個線程同時對N層地層體對象同時進行處理,如圖3和圖4所示;
(7)根據(jù)地質(zhì)切片對象列表ListC中每個剖面對象的拓撲結(jié)構(gòu)和屬性信息,構(gòu)建N個地層的地質(zhì)剖面(切片)并可視化表達,如圖5所示;
(8)沿巡查方向?qū)⑵是忻鍿上每個點平移步長D,更新剖切面對象S所有結(jié)點的坐標(biāo)(如圖3所示),并令當(dāng)前幀標(biāo)記變量t=t+1,對于剖切面S上任意一點(x,y,z),平移后的坐標(biāo)(x',y',z')可表示為以下公式:
(9)判斷t<N是否成立,如果成立則轉(zhuǎn)步驟(5)進行下一幀的巡查,否則轉(zhuǎn)下一步;
(10)在完成一輪的地質(zhì)體序貫剖面動態(tài)顯示之后,需將剖切面S恢復(fù)到初始位置,并令t=0,然后進行新一輪的動態(tài)顯示;
(11)根據(jù)用戶對結(jié)束開關(guān)的控制來判斷動態(tài)顯示是否結(jié)束。如果巡查未結(jié)束,則轉(zhuǎn)步驟(5)繼續(xù)動態(tài)顯示,否則轉(zhuǎn)下一步;
(12)銷毀所有線程和對象,結(jié)束該方向的巡查和顯示。
利用本發(fā)明所述方法,通過界面參數(shù)定制與控制,可從多個方向?qū)崿F(xiàn)對復(fù)雜地質(zhì)體模型的多角度可視化動態(tài)巡查,具有良好的靈活性、可控性和可操作性,而且有較高的自動化程度。圖7為參數(shù)控制及多方向巡查的實例,其中包括兩個相互垂直的巡查方向。每個方向上的控制參數(shù)①~⑦分別表示:①為單程顯示總幀數(shù),即在該方向上巡查地質(zhì)體模型一個線程的剖面圖像總幀數(shù);②為反向巡查方向控制鍵,可令其沿反向巡查;③為暫停和開始掃描開關(guān);④為正向巡查方向控制鍵,可令其沿正向巡查;⑤為添加一個巡視剖面(切片)的控制鍵,當(dāng)前巡視剖面(切片)停止在原地,將新添切片設(shè)置為當(dāng)前切片,令t=0,可從頭開始該方向的巡查與顯示;⑥為刪除一個剖面(切片)的控制鍵,所刪除的是剛剛完成的前一個剖面(切片);⑦為手動控制軸,在當(dāng)前方向暫停巡查后,可通過該軸手動控制巡查進程,使切片移動到理想位置。圖7所示為橫縱兩個垂直方向的地質(zhì)剖面,還可添加更多方向和更多數(shù)量的剖面圖,形成多方向的地質(zhì)體模型柵狀圖,便于直觀地感知和分析其內(nèi)部地質(zhì)結(jié)構(gòu)、構(gòu)造及地質(zhì)現(xiàn)象。
應(yīng)當(dāng)理解的是,對本領(lǐng)域普通技術(shù)人員來說,可以根據(jù)上述說明加以改進或變換,而所有這些改進和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護范圍。