周浩,蔡歡
(天津市測(cè)繪院,天津 300381)
基于狄洛尼三角網(wǎng)的等高線及挖填方分析研究
周浩?,蔡歡
(天津市測(cè)繪院,天津 300381)
基于對(duì)外業(yè)測(cè)量數(shù)據(jù)三維表達(dá)的目的,采用改進(jìn)的逐點(diǎn)插入法構(gòu)建狄洛尼(Delaunay)三角網(wǎng),并結(jié)合Auto-CAD Civil 3D進(jìn)行測(cè)量數(shù)據(jù)三維展示,實(shí)現(xiàn)了三維環(huán)境中等高線的繪制以及挖填方土方量的計(jì)算,可以較好擬合地形等高線起伏,直觀分析挖填方的位置和土方量,使AutoCAD的應(yīng)用由傳統(tǒng)的二維模式向三維模式轉(zhuǎn)變。
狄洛尼三角網(wǎng);等高線;土方計(jì)算
數(shù)字地形模型(DTM)是對(duì)地表形態(tài)及屬性信息的數(shù)學(xué)表達(dá),包含空間坐標(biāo)屬性及地形屬性特征。當(dāng)其地形屬性為高程值時(shí),又被稱(chēng)為數(shù)字高程模型(DEM)。DTM主要有三種模型:等高線模型、規(guī)則格網(wǎng)模型和不規(guī)則三角網(wǎng)模型。等高線模型能比較直接地反映地形地貌,但不適合進(jìn)行坡度計(jì)算、挖填方計(jì)算等地學(xué)計(jì)算。規(guī)則格網(wǎng)模型在GIS應(yīng)用中很有利,但其數(shù)據(jù)量大,且需要分布較為規(guī)則的高程點(diǎn)數(shù)據(jù)的特點(diǎn),難以表達(dá)復(fù)雜地形地貌。在大比例尺地形圖的生產(chǎn)中,傳統(tǒng)野外測(cè)量方法獲取到的高程信息大多是不規(guī)則的離散點(diǎn),一般采用不規(guī)則三角網(wǎng)(TIN)來(lái)表示其地形地貌變化[1]。在所有三角網(wǎng)生成方法中,狄洛尼三角剖分不僅能保證三角網(wǎng)的唯一性,而且能盡可能地避免狹長(zhǎng)三角形的出現(xiàn),是生成TIN的最好方法。
狄洛尼三角網(wǎng)具有以下三個(gè)性質(zhì):
(1)空外接圓性質(zhì):三角網(wǎng)中每個(gè)三角形的外接圓都不包含點(diǎn)集中的其余點(diǎn)。
(2)最大最小角度性質(zhì):在所有可能生成的三角網(wǎng)中,各三角形最小角之和最大。
(3)唯一性:無(wú)論從何點(diǎn)開(kāi)始構(gòu)造三角網(wǎng),最終生成的狄洛尼三角網(wǎng)相同。
2.1狄洛尼三角網(wǎng)生成算法
狄洛尼三角網(wǎng)生成算法主要包括三類(lèi):逐點(diǎn)插入算法、三角網(wǎng)生長(zhǎng)算法、分割合并算法。經(jīng)試驗(yàn)發(fā)現(xiàn):分割合并算法對(duì)復(fù)雜分布的離散點(diǎn)處理效果不理想,當(dāng)相鄰子三角網(wǎng)的形狀都很不規(guī)則時(shí),合并后的三角網(wǎng)極有可能出現(xiàn)不合理的凹陷部分。三角網(wǎng)生長(zhǎng)算法則需要對(duì)每個(gè)新生成的三角形的三條邊分別進(jìn)行循環(huán)擴(kuò)展,同時(shí)剔除重復(fù)三角形,直到?jīng)]有新的三角形生成[2]。該方法算法簡(jiǎn)單,但是算法效率極低。所以本文采用改進(jìn)后的逐點(diǎn)插入法來(lái)生成狄洛尼三角網(wǎng),其算法思想是:
(1)剔除重復(fù)點(diǎn)。
(2)生成一個(gè)包含所有離散點(diǎn)的超級(jí)三角形。
(3)循環(huán)點(diǎn)集中的每個(gè)點(diǎn):求出當(dāng)前離散點(diǎn)落在哪些已有三角形的外接圓內(nèi),獲取在這些三角形中只出現(xiàn)過(guò)一次的邊,將這些邊與當(dāng)前點(diǎn)組成新的三角形,并刪除受影響的三角形。
(4)將包含超級(jí)三角形頂點(diǎn)的三角形刪除。
2.2三角形類(lèi)
三角形類(lèi)的主要作用包括:存儲(chǔ)該三角形的三個(gè)頂點(diǎn)坐標(biāo);判斷一個(gè)點(diǎn)是否是該三角形頂點(diǎn);計(jì)算三角形面積、重心、外接圓圓心及半徑。
2.3三角形邊類(lèi)
三角形邊類(lèi)的主要作用是存儲(chǔ)邊的兩個(gè)頂點(diǎn)以及判斷兩條邊是否重合。
傳統(tǒng)的二維平面對(duì)地形地貌的表現(xiàn)能力不足,體現(xiàn)為美觀性和易讀性較差。不規(guī)則三角網(wǎng)模型(TIN)的結(jié)構(gòu)邏輯性強(qiáng),數(shù)據(jù)量適中,利于進(jìn)行坡度、坡向分析以及挖填方等地學(xué)計(jì)算。因此本文采用AutoCAD Civil 3D作為底層平臺(tái),實(shí)現(xiàn)基于狄洛尼三角網(wǎng)的等高線繪制和挖填方計(jì)算兩個(gè)方面的應(yīng)用。
3.1繪制等高線
等高線用來(lái)展示地形地貌特征。在三角網(wǎng)中通過(guò)內(nèi)插方式生成等高線,以三維的方式繪制地表等高線分布,可以直觀的表現(xiàn)地面的起伏狀況,流程如下:
(1)遍歷三角網(wǎng)中的每一個(gè)三角形,根據(jù)當(dāng)前高程CurElev和三角形頂點(diǎn)坐標(biāo),計(jì)算三角形三邊上的等值點(diǎn)。如果該三角形邊上等值點(diǎn)的數(shù)量大于1個(gè),則將這些等值點(diǎn)放入一個(gè)點(diǎn)集合CurPoints,再將這個(gè)點(diǎn)集合放入點(diǎn)集合鏈表AllPoints中。
(2)如果AllPoints中點(diǎn)集合總數(shù)大于0,則從All-Points中取出第一個(gè)點(diǎn)集合,作為新等高線的點(diǎn)集合LinePoints,否則退出。
(3)遍歷AllPoints中的點(diǎn)集合,將點(diǎn)集合中的點(diǎn)和LinePoints中的第一個(gè)點(diǎn)或最后一個(gè)點(diǎn)做比較。如果相等,則將點(diǎn)集合中的其他點(diǎn)加入LinePoints頭部或者尾部,并將點(diǎn)集合從AllPoints中移除。
(4)當(dāng)AllPoints點(diǎn)集合中的所有點(diǎn)都不與Line-Points中第一個(gè)點(diǎn)或最后一個(gè)點(diǎn)相等時(shí),表明當(dāng)前等高線已經(jīng)生成完畢。返回執(zhí)行第2步直至AllPoints遍歷完畢。
(5)利用AutoCAD Civil 3D將LinePoints點(diǎn)集合進(jìn)行繪制,生成三維等高線圖,如圖1所示。
圖1 三維等高線圖
3.2DTM法挖填方計(jì)算
在建設(shè)施工項(xiàng)目中土方量計(jì)算是一項(xiàng)十分重要工作,關(guān)系到項(xiàng)目各方的切身利益。區(qū)域內(nèi)挖填方的計(jì)算方法包括等高線法、DTM法、斷面法以及方格網(wǎng)法,每種方法有不同的使用范圍[3]。DTM法挖填方計(jì)算的原理是三角棱柱體積法,通過(guò)計(jì)算范圍線內(nèi)每個(gè)三角形區(qū)域的挖填方量,最終得到整個(gè)區(qū)域的挖填方總量[4]。計(jì)算流程如下:
(1)根據(jù)高程點(diǎn)集和選取的閉合范圍線,得到計(jì)算區(qū)域的三角網(wǎng)。通過(guò)構(gòu)造狄洛尼三角網(wǎng)得出需要計(jì)算的三角形。
(2)計(jì)算每個(gè)三角形的挖填方量。根據(jù)三角形挖填高度的不同,其挖填方計(jì)算方式分為兩種:全挖或全填或有挖有填。
3.2.1全挖/全填
此時(shí)挖填部分是一個(gè)標(biāo)準(zhǔn)的三角棱柱體,如圖2所示,其體積計(jì)算公式:
式中:S為三角形在XY平面上的投影面積,利用海倫公式計(jì)算;H1、H2、H3是三角形各頂點(diǎn)的挖填高度(取絕對(duì)值)。3.2.2 有挖有填
圖2 全挖或全填
零線將三角形分成兩個(gè)部分,根據(jù)零線與三角形的相交關(guān)系,存在兩種分割情況:①零線經(jīng)過(guò)三角線的一個(gè)頂點(diǎn),與對(duì)邊相交,形成兩個(gè)底面為三角形的錐體;②零線與三角形兩條邊內(nèi)部相交,分別計(jì)算錐體和楔體的體積。零線與三角形兩條邊內(nèi)部相交,形成一個(gè)底面為三角形的錐體和一個(gè)底面為四邊形的楔體。
①零線經(jīng)過(guò)三角形的一個(gè)頂點(diǎn),形成的兩個(gè)底面為三角形的錐體,可以看做是兩個(gè)三棱錐,如圖3所示,其體積計(jì)算公式:
式中:S是錐體在XY平面的投影面積;H3是錐體頂點(diǎn)的挖填高度(取絕對(duì)值)。
錐體部分的體積計(jì)算公式:
式中:S為三角形在XY平面的投影面積;H1、H2、H3為三角形各頂點(diǎn)的挖填高度(取絕對(duì)值),其中H3為錐體頂點(diǎn)的挖填高度,如圖4所示。
楔體部分的體積計(jì)算公式:
圖4 錐體和楔
利用AutoCAD Civil 3D搭建操作視圖窗口,支持不同數(shù)據(jù)來(lái)源的原始地形數(shù)據(jù)和設(shè)計(jì)面數(shù)據(jù),數(shù)據(jù)計(jì)算入口界面和計(jì)算結(jié)果顯示界面分別如圖5、圖6所示:
圖5 土方計(jì)算數(shù)據(jù)入口
圖6 土方計(jì)算結(jié)果
利用改進(jìn)后的逐點(diǎn)插入法生成狄洛尼三角網(wǎng),并結(jié)合具有三維顯示引擎的AutoCAD Civil 3D,對(duì)外業(yè)測(cè)量數(shù)據(jù)進(jìn)行三維展示,通過(guò)等高線構(gòu)成算法和DTM挖填方算法,實(shí)現(xiàn)三維環(huán)境中的等高線生成和土方量計(jì)算,以可旋轉(zhuǎn)、可漫游的方式對(duì)數(shù)據(jù)進(jìn)行立體展示,從而更真實(shí)地表達(dá)外業(yè)實(shí)測(cè)地貌形狀,更直觀地分析挖方、填方的剖面構(gòu)成,更準(zhǔn)確地計(jì)算挖填方土方量。
[1] 劉永和,王燕萍,齊永安.一種簡(jiǎn)單快速的Delaunay三角網(wǎng)逐塊生成算法[J].測(cè)繪科學(xué),2008(6):133~135.
[2] 許麗敏,薛安.基于Delaunay三角網(wǎng)與Voronoi圖聯(lián)合提取等高線骨架的地形重建算法研究[J].北京大學(xué)學(xué)報(bào), 2009(4):647~652.
[3] 林偉明,林青海.南方CASS成圖軟件中三角網(wǎng)對(duì)工程量計(jì)算的探討[J].四川水力發(fā)電,2012(6):92~94.
[4] 關(guān)金華,趙遠(yuǎn)方,胡金陽(yáng)等.基于TIN的工程土方量計(jì)算[J].礦山測(cè)量,2011(6):69~72.
[5] 徐朱,方強(qiáng),翟輝.基于TIN的土石方計(jì)算研究[J].江蘇科技信息,2014(13):39~41.
The Analysis of Contour and Earthwork Calculation Based on Delaunay Triangulation
Zhou Hao,Cai Huan
(Tianjin Institute of Surveying and Mapping,Tianjin 300381,China)
For the purposes of displaying External measurement data in three-dimensional model,the author used the improved method of inserting point by point to build the Delaunay triangulation,combined with AutoCAD Civil 3D,so it can draw contours and calculate the cut and fill earthwork square in three dimensional environment,this can better fit the terrain contour movements,can visually analyze the location and earthwork of excavation and filling side,in short,it changes the use of AutoCAD applications from the traditional two-dimensional model to three-dimensional model.
delaunay triangulation;contour;earthwork calculation
1672-8262(2016)01-110-04
P208.1,P209
B
?2015—12—23
周浩(1988—),男,工程師,研究方向:地理信息系統(tǒng)。
天津市國(guó)土資源和房屋管理局科研項(xiàng)目(津國(guó)土房科驗(yàn)字[2015]第022號(hào))