姜 蕓,閆 利,王 軍
(1.武漢大學(xué) 測(cè)繪學(xué)院,湖北 武漢 430079;2.國(guó)家測(cè)繪局黑龍江基礎(chǔ)地理信息中心,黑龍江 哈爾濱 150025)
隨著計(jì)算機(jī)技術(shù)的飛躍發(fā)展,態(tài)勢(shì)二維可視化技術(shù)日趨成熟并逐步實(shí)用化,伴隨著數(shù)字化的發(fā)展,各國(guó)都越來(lái)越重視對(duì)態(tài)勢(shì)三維可視化的研究。從整體而言,三維技術(shù)的發(fā)展已經(jīng)相對(duì)比較完善,有些技術(shù)已經(jīng)發(fā)展了較長(zhǎng)一段時(shí)間,現(xiàn)在的三維技術(shù)已經(jīng)可以應(yīng)用在實(shí)際中而且表現(xiàn)效果也很好。一般態(tài)勢(shì)標(biāo)繪有二維態(tài)勢(shì)和三維態(tài)勢(shì)2種方式[1],態(tài)勢(shì)標(biāo)繪可以廣泛應(yīng)用于災(zāi)難防范,應(yīng)急事件處理、防火、反恐等諸多領(lǐng)域。
目前,針對(duì)態(tài)勢(shì)標(biāo)繪的問(wèn)題,已經(jīng)有很多研究者提出了解決方案,態(tài)勢(shì)標(biāo)繪可分為常規(guī)標(biāo)繪和函數(shù)標(biāo)繪,而對(duì)于態(tài)勢(shì)標(biāo)繪來(lái)說(shuō),常規(guī)標(biāo)繪較為簡(jiǎn)單,可通過(guò)建立標(biāo)準(zhǔn)模型庫(kù),以滿(mǎn)足態(tài)勢(shì)標(biāo)繪需求;而箭頭標(biāo)繪、各種區(qū)域標(biāo)繪作為函數(shù)標(biāo)繪中最基本、最常用的態(tài)勢(shì)符號(hào),是典型的非規(guī)則標(biāo)繪,其三維繪制研究對(duì)于整個(gè)非規(guī)則三維標(biāo)繪的實(shí)現(xiàn)具有重要意義[2],本文重點(diǎn)研究單箭頭標(biāo)繪和雙箭頭標(biāo)繪,針對(duì)態(tài)勢(shì)標(biāo)繪中實(shí)時(shí)態(tài)勢(shì)標(biāo)繪要求,研究實(shí)現(xiàn)二維態(tài)勢(shì)與三維態(tài)勢(shì)聯(lián)動(dòng)表現(xiàn)的一體化操作和顯示模型,提出了一種中點(diǎn)約束算法模型的通用標(biāo)繪方法,可有效實(shí)現(xiàn)二三維環(huán)境下箭標(biāo)的實(shí)時(shí)標(biāo)繪。
貝塞爾曲線(xiàn)是在計(jì)算機(jī)圖形和相關(guān)領(lǐng)域中經(jīng)常使用的一個(gè)參數(shù)化的曲線(xiàn),可在矢量圖形中用來(lái)模擬流暢的曲線(xiàn),可無(wú)限期地進(jìn)行調(diào)整。有許多方法來(lái)構(gòu)造一條Bezier曲線(xiàn),為有效控制曲線(xiàn)的趨進(jìn)程度,增加曲線(xiàn)的擬合效果,本文提出基于中點(diǎn)的曲線(xiàn)擬合算法,采用分割獲取的方法,構(gòu)建擬合曲線(xiàn),提高曲線(xiàn)擬合效率。中點(diǎn)算法曲線(xiàn)點(diǎn)如圖1所示。
圖1 中點(diǎn)算法曲線(xiàn)點(diǎn)示意圖
其中:T為遞歸次數(shù),為常數(shù),0≤n<T,midpoint為中點(diǎn)算法遞歸函數(shù)。
當(dāng)n=0,可計(jì)算獲得C1,C2,C3值,如式(2)所示。
其中,a為首次計(jì)算的趨進(jìn)權(quán)重,默認(rèn)為1/2,可控制到P2的趨進(jìn)程度。
當(dāng)a=1/2時(shí),式(2)可合并到式(1),為增加擬合曲線(xiàn)到P2的趨進(jìn)度可減小a的取值。
1)為實(shí)現(xiàn)二三維一體化顯示,以二維環(huán)境為基礎(chǔ),構(gòu)建中軸線(xiàn)約束模型,有效提高效率和可操作性,實(shí)現(xiàn)一體化聯(lián)動(dòng)顯示。
2)基于二維環(huán)境,根據(jù)用戶(hù)給出的約束源(可以是模型上的點(diǎn)、線(xiàn)或者面)、約束的有效半徑R來(lái)確定各點(diǎn)處的變形權(quán)值進(jìn)行變形[3],構(gòu)建箭標(biāo)圖形。
3)將二維環(huán)境下構(gòu)建的箭標(biāo)圖形,在三維環(huán)境下進(jìn)行地形匹配擬合。
1)初始約束點(diǎn)(P):用戶(hù)初始輸入點(diǎn),P1為箭頭出發(fā)點(diǎn),P3為目標(biāo)點(diǎn),P2為中間約束點(diǎn),本算法采用3點(diǎn)約束控制,數(shù)據(jù)模型僅保存初始約束點(diǎn)的坐標(biāo)值即可,大大降低了數(shù)據(jù)模型存儲(chǔ)的復(fù)雜度,如圖2所示。
圖2 二維箭頭模型
2)中軸線(xiàn)(P1-P3):用于控制箭頭模型關(guān)鍵部位,標(biāo)準(zhǔn)化情況下中軸線(xiàn)為直線(xiàn),P2位于中軸線(xiàn)上。
3)中軸線(xiàn)控制點(diǎn)(C):由P1,P2,P3采用中點(diǎn)算法擬合獲得的控制點(diǎn),用于約束控制中軸線(xiàn)的關(guān)鍵部位,隨出發(fā)點(diǎn)、目標(biāo)點(diǎn)、中間控制點(diǎn)的改變而改變。
4)關(guān)鍵點(diǎn)(A):由中軸線(xiàn)控制點(diǎn)與約束的有效半徑R(常數(shù))確定的箭頭輪廓外形關(guān)鍵點(diǎn)(A1-An)。
首先根據(jù)用戶(hù)輸入的初始約束點(diǎn)(P1,P2,P3),采用中點(diǎn)算法擬合中軸線(xiàn)控制點(diǎn)(C),并記錄初始約束點(diǎn);然后根據(jù)中軸線(xiàn)控制點(diǎn)計(jì)算并擬合箭頭輪廓外形關(guān)鍵點(diǎn)(A1-An),形成二維態(tài)勢(shì)箭頭模型,采用動(dòng)態(tài)柵格化方法與三維地形進(jìn)行無(wú)縫擬合顯示。標(biāo)繪流程如圖3所示。
圖3 箭頭標(biāo)繪流程
1)約束點(diǎn)初始化。用戶(hù)輸入初始約束點(diǎn),P1為箭頭出發(fā)點(diǎn),P3為目標(biāo)點(diǎn),P2為中間約束點(diǎn),及約束距離S。
2)中軸線(xiàn)控制點(diǎn)擬合。根據(jù)初始的約束點(diǎn),采用中點(diǎn)約束算法,計(jì)算中軸線(xiàn)控制點(diǎn)(C1-C5),為便于描述將二維箭頭模型的中軸線(xiàn)簡(jiǎn)化迭代次數(shù)(T=2),如圖4所示。其中C1=P1,C5=P3。
圖4 二維箭頭網(wǎng)格模型
3)箭尾關(guān)鍵點(diǎn)生成。箭尾關(guān)鍵點(diǎn)由A5,C2,A6構(gòu)成,以C2為頂點(diǎn),以C2,P1(C1)為高,構(gòu)建等腰△C2A5A6,其中A5,P1(C1)的距離為DIS,其中;n為中軸線(xiàn)控制點(diǎn)總數(shù),n=2T+1。由此計(jì)算A5,A6的值,依次類(lèi)推計(jì)算箭身關(guān)鍵點(diǎn)A2,A3,A4,A7,A8,A9。
4)箭頭關(guān)鍵點(diǎn)生成。箭頭關(guān)鍵點(diǎn)構(gòu)成包括箭頭點(diǎn)(P3),2個(gè)箭耳點(diǎn)(A1,A10)和2個(gè)箭頸點(diǎn)(A2,A9),共計(jì)5個(gè)點(diǎn)。由以上的推算可知,僅有箭耳點(diǎn)為未知點(diǎn),采用步驟3)同樣的方法計(jì)算。
在三維環(huán)境中進(jìn)行態(tài)勢(shì)標(biāo)繪,因箭頭標(biāo)繪為面狀符號(hào),跨越的地形起伏變化也較大,需重點(diǎn)解決態(tài)勢(shì)標(biāo)繪與地形高程的匹配問(wèn)題。同時(shí)現(xiàn)階段,三維平臺(tái)眾多且技術(shù)比較成熟,為提高態(tài)勢(shì)標(biāo)繪技術(shù)的通用性及在三維環(huán)境中顯示效率,本文采用將標(biāo)繪圖形進(jìn)行動(dòng)態(tài)柵格化,并將柵格化圖像于地形進(jìn)行擬合,大大提高了執(zhí)行效率和顯示效果。
因采用中軸線(xiàn)控制點(diǎn)構(gòu)建箭頭模型,為提高在三維環(huán)境下顯示速度,本文采用控制中軸線(xiàn)控制點(diǎn)的數(shù)目,簡(jiǎn)化模型,即控制迭代參數(shù)T;通過(guò)逐次簡(jiǎn)化減少幾何復(fù)雜性,從而提高繪制算法的效率。細(xì)節(jié)層次模型簡(jiǎn)化如圖5及表1所示。
圖5 細(xì)節(jié)層次模型簡(jiǎn)化示意圖
表1 細(xì)節(jié)層次模型簡(jiǎn)化參數(shù)
雙箭標(biāo)繪與單箭標(biāo)繪在繪制時(shí)基本思想一致,不同之處在于雙箭標(biāo)繪需要繪制兩箭頭的連接。本文雙箭頭模型采用6個(gè)初始約束點(diǎn),兩箭頭的連接采用中點(diǎn)算法進(jìn)行擬合,擬合模型如圖6所示,可通過(guò)調(diào)整初始約束點(diǎn)分別控制2個(gè)箭頭的走向。
圖6 雙箭頭模型效果
以SuperMap Object.Net6R(2012)作為二維顯示平臺(tái),GeoGlobe作為三維顯示平臺(tái),采用PC機(jī)(T7400 2.16GHz,NVIDIA Quadro NVS120M,1GB內(nèi)存),利用Visual Studio2008,運(yùn)用本文算法模型,構(gòu)建二三維一體化態(tài)勢(shì)標(biāo)繪系統(tǒng)。試驗(yàn)效果如圖7所示。
圖7 態(tài)勢(shì)標(biāo)繪試驗(yàn)效果圖
本文介紹了態(tài)勢(shì)標(biāo)繪的基本情況,提出并實(shí)現(xiàn)了基于中點(diǎn)的曲線(xiàn)擬合算法,詳細(xì)介紹了基于中軸線(xiàn)約束的單箭頭模型的基本思想、算法實(shí)現(xiàn),通過(guò)試驗(yàn)取得了較好的效果,本方法和算法模型大大簡(jiǎn)化了態(tài)勢(shì)標(biāo)繪中初始輸入點(diǎn)的數(shù)據(jù),簡(jiǎn)化了存儲(chǔ)模型,有利于二三維一體化操作和顯示,更可通用于不同的二、三維GIS平臺(tái)。雖然現(xiàn)階段已經(jīng)積累了豐富的經(jīng)驗(yàn),但仍有大量問(wèn)題待解決和完善。下一步需要重點(diǎn)研究高效的三維模型標(biāo)繪符號(hào)及三維表現(xiàn)形式,隨著技術(shù)的發(fā)展和態(tài)勢(shì)標(biāo)繪的深層次應(yīng)用,將促使我們提出更好的解決方案。
[1]陳建祥,魏迎梅,吳玲達(dá).虛擬戰(zhàn)場(chǎng)環(huán)境中的態(tài)勢(shì)標(biāo)繪與表現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2005,25(7):1701-1703.
[2]馬洪文,熊軍,楊曉松,等.基于OpenGL中Bezier曲面的三維箭標(biāo)繪制研究[J].軍事交通學(xué)院學(xué)報(bào),2009,11(5):86-90.
[3]周艷,劉圣軍,金小剛,等.基于測(cè)地距離的多邊形網(wǎng)格模型約束變形[J].JournalofSoftware,2007,18(6):1543-1552.
[4]劉會(huì)剛,秦國(guó)亮.一種基于Bezier曲線(xiàn)的軍事箭標(biāo)實(shí)現(xiàn)[J].四川兵工學(xué)報(bào),2009,30(2):67-68.
[5]劉會(huì)剛,秦國(guó)亮.一種漸進(jìn)式平滑軌跡線(xiàn)標(biāo)繪方法[J].系統(tǒng)仿真學(xué)報(bào),2012,24(2):357-360.
[6]王燕.二三維一體化的WebGIS系統(tǒng)的研究與實(shí)現(xiàn)[J].測(cè)繪學(xué)報(bào),2011,34(5):46-47.
[7]徐敬海,徐徐,聶高眾,等.基于GIS的地震應(yīng)急態(tài)勢(shì)標(biāo)繪技術(shù)研究[J].武漢大學(xué)學(xué)報(bào):信息科學(xué)版,2011,36(1):66-70.