計(jì)算機(jī)等級(jí)考試編三維地質(zhì)建模系統(tǒng)整體思路
IDE:本來(lái)打算利用VC++6.0,因?yàn)閂C++6.0是目前的主流開發(fā)三維可視化的IDE,不過(guò)使用難度較大,而且我們領(lǐng)導(dǎo)用的是C++ BUILDER,C++ BUILDER具有上手快、制作界面簡(jiǎn)易的優(yōu)點(diǎn),于是選擇用BCB了。
三維圖形庫(kù):利用open graphics library(opengl),至于Open Inventor(OIV),暫時(shí)不打算用,在開發(fā)過(guò)程中如果OPENGL用得比較好了再考慮是否用OIV。
主要難點(diǎn):
(1)地質(zhì)三維建模方法:地質(zhì)體是一個(gè)三維的、非均質(zhì)性非常明顯的復(fù)雜體,和CAD系統(tǒng)相比建模方法要復(fù)雜很多。
(2)三維地質(zhì)模型的三維顯示與交互:特別是交互功能的實(shí)現(xiàn)比較困難。
(3)對(duì)海量數(shù)據(jù)的處理:地質(zhì)體三維數(shù)字化數(shù)據(jù)是非常龐大的,一個(gè)地層就動(dòng)輒數(shù)十、上百萬(wàn)個(gè)離散點(diǎn)。
自頂向下的目標(biāo)分解思路:
三維地質(zhì)建模系統(tǒng)是一個(gè)很龐大的軟件工程,如果不進(jìn)行目標(biāo)分解來(lái)逐步達(dá)成的話,實(shí)現(xiàn)起來(lái)將會(huì)遙遙無(wú)期。1961年,美國(guó)為了實(shí)現(xiàn)1970年登上月球曾經(jīng)制定了詳細(xì)的登月計(jì)劃:
(1)發(fā)射火箭到大氣層;
(2)環(huán)繞地球;
(3)發(fā)射火箭,環(huán)繞月球;
(4)月球著陸器從火箭中分離,在月面降落;
(5)月球著陸器離開月球,與軌道艙會(huì)合;
(6)返回地球;
(7)進(jìn)入大氣層;
(8)返回艙安全墜入大海。
然后每一個(gè)階段目標(biāo)更進(jìn)一步地分解為更小的目標(biāo),果然在1969年,人類首次登陸月球。
我們進(jìn)行的目標(biāo)分解過(guò)程如下:
(1)建立一個(gè)100×100×100的數(shù)據(jù)體,實(shí)現(xiàn)多層地層建模。
進(jìn)一步分解:
①給定100個(gè)地層層面離散點(diǎn),將地質(zhì)數(shù)據(jù)體分為兩個(gè)層塊,實(shí)現(xiàn)對(duì)兩個(gè)層塊分別進(jìn)行屬性值插值。
②給定少于100個(gè)離散點(diǎn),自動(dòng)延拓到數(shù)據(jù)體邊界。
③給定多于100個(gè)離散點(diǎn),自動(dòng)裁剪到數(shù)據(jù)體邊界。
④增加一個(gè)與上一個(gè)地層近平行不相接的地層層面,將地質(zhì)數(shù)據(jù)體分為三個(gè)層塊,實(shí)現(xiàn)對(duì)三個(gè)層塊分別進(jìn)行屬性值插值。
⑤增加一個(gè)與上一個(gè)地層部分相接的地層層面,將地質(zhì)數(shù)據(jù)體分為三個(gè)層塊,實(shí)現(xiàn)對(duì)三個(gè)層塊分別進(jìn)行屬性值插值。
⑥實(shí)現(xiàn)任意多層層面任意拓?fù)潢P(guān)系的地質(zhì)建模和屬性插值算法。
(2)建立一個(gè)100×100×100的數(shù)據(jù)體,實(shí)現(xiàn)地層-斷層混合建模。
進(jìn)一步分解:
①實(shí)現(xiàn)一個(gè)地層面與一個(gè)斷層面的相交線的求取算法
②實(shí)現(xiàn)根據(jù)一對(duì)相交線對(duì)一個(gè)地層進(jìn)行撕裂的算法,并分塊進(jìn)行屬性值插值。
③實(shí)現(xiàn)根據(jù)一對(duì)相交線對(duì)多個(gè)地層進(jìn)行撕裂的算法,并分塊進(jìn)行屬性值插值。
④實(shí)現(xiàn)根據(jù)兩對(duì)相交線對(duì)多個(gè)地層進(jìn)行撕裂的算法,并分塊進(jìn)行屬性值插值。
⑤實(shí)現(xiàn)根據(jù)任意多個(gè)相交線對(duì)多個(gè)地層進(jìn)行撕裂的算法,并分塊進(jìn)行屬性值插值。
(3)建立一個(gè)10000×10000×10000的數(shù)據(jù)體,實(shí)現(xiàn)地層-斷層混合建模。
進(jìn)一步分解:
①將原始數(shù)據(jù)進(jìn)行抽稀,使每個(gè)層面的數(shù)據(jù)少于等于10000.
②利用內(nèi)存映射的技術(shù)對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單操作。
③將第二步驟的算法用內(nèi)存映射的技術(shù)進(jìn)行算法重新編寫。
(4)實(shí)現(xiàn)三維地質(zhì)模型的三維顯示。
(5)實(shí)現(xiàn)三維地質(zhì)模型的三維交互(實(shí)時(shí)查詢與修改模型)