臧義華 梁佳 吳亞非
摘 要:戰(zhàn)場(chǎng)態(tài)勢(shì)圖成為信息化戰(zhàn)爭(zhēng)中各類指揮控制系統(tǒng)的核心。為提升參謀作戰(zhàn)標(biāo)圖速度及繪制效果,提出以基本標(biāo)號(hào)為基礎(chǔ)設(shè)計(jì)含義豐富的組合標(biāo)號(hào)方法。將設(shè)計(jì)的組合標(biāo)號(hào)作為一個(gè)整體保存入庫(kù),繪制時(shí)通過基本標(biāo)號(hào)進(jìn)行繪制、屬性修改等操作,一次性完成軍標(biāo)復(fù)雜含義符號(hào)繪制。實(shí)際應(yīng)用表明,該設(shè)計(jì)可解決由于態(tài)勢(shì)標(biāo)繪中軍用符號(hào)不可隨時(shí)增加而無法滿足需求的難題,使態(tài)勢(shì)圖標(biāo)繪效率提高30%。
關(guān)鍵詞:態(tài)勢(shì)標(biāo)繪;標(biāo)號(hào)重用;組合調(diào)整;撤銷/恢復(fù)
DOI:10. 11907/rjdk. 201486 開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
中圖分類號(hào):TP319文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2020)007-0122-05
Symbols Reuse Design of Situation Plotting System
ZANG Yi-hua, LIANG Jia, WU Ya-fei
(North China Institute of Computing Technology, Beijing 100083,China)
Abstract:The battlefield situation plotting in information warfare has become the core of all kinds of accusation systems, and the content that needs to be plotted is rich. However, the military requirements for the interoperability of the situation map lead to the military symbol not being able to increase by itself. This paper proposes a combination label with rich meaning based on the basic label, and then saves the designed combination label as a whole into the library. When drawing, the complex meaning military standard symbol is drawn at one time through the operations of basic label drawing and attribute modification. The difficulty that military symbols cannot be added at any time in situation mapping, and at the same time improves the efficiency of the staff plots. The application of the design in actual engineering can increase the efficiency of plotting situation by 30%.
Key Words:situation plotting system; symbol reuse; adjust combined symbol; undo/redo
0 引言
隨著計(jì)算機(jī)技術(shù)和通信技術(shù)的飛速發(fā)展,軍事作戰(zhàn)指揮與控制逐步向信息化與網(wǎng)絡(luò)化方向發(fā)展,軍用圖形處理系統(tǒng)服務(wù)于作戰(zhàn)指揮自動(dòng)化和戰(zhàn)場(chǎng)環(huán)境數(shù)字化建設(shè),提供戰(zhàn)場(chǎng)空間和時(shí)間態(tài)勢(shì)認(rèn)知的信息系統(tǒng)。態(tài)勢(shì)標(biāo)繪系統(tǒng)以地理信息系統(tǒng)為平臺(tái),使用點(diǎn)、線、面符號(hào)和其它矢量符號(hào),標(biāo)繪各種對(duì)象,生成戰(zhàn)場(chǎng)態(tài)勢(shì)圖[1]。信息化戰(zhàn)爭(zhēng)中,戰(zhàn)場(chǎng)態(tài)勢(shì)圖已經(jīng)成為各類指揮控制系統(tǒng)核心,標(biāo)號(hào)則是態(tài)勢(shì)標(biāo)繪的基礎(chǔ)。軍隊(duì)標(biāo)號(hào)是一種部隊(duì)作戰(zhàn)指揮、作戰(zhàn)模擬和其它軍事活動(dòng)中常用的隊(duì)列圖形符號(hào)[2-[3]?,F(xiàn)代社會(huì)隨時(shí)會(huì)出現(xiàn)新需求,但軍用標(biāo)號(hào)庫(kù)修改需要各級(jí)審批,不可能隨時(shí)修改;如果各部門自行增加標(biāo)號(hào)必然導(dǎo)致生成的態(tài)勢(shì)圖在其它環(huán)境無法打開。同時(shí),復(fù)雜的信息無法通過一個(gè)符號(hào)準(zhǔn)確表達(dá)其含義,解決這類問題以往主要通過參謀對(duì)標(biāo)繪軟件多個(gè)符號(hào)進(jìn)行拼接、組合,但再次用到時(shí)又需要花費(fèi)同等時(shí)間完成?!痘谒惴ńM合模型的軍標(biāo)符號(hào)設(shè)計(jì)與實(shí)現(xiàn)》[4]一文,采用基于算法的圖元組合方案對(duì)軍標(biāo)符號(hào)進(jìn)行描述,提高軍標(biāo)符號(hào)庫(kù)開放性;《動(dòng)態(tài)軍標(biāo)符號(hào)實(shí)現(xiàn)方法研究》[5]探討軍標(biāo)符號(hào)控制點(diǎn)生成問題,本質(zhì)上解決的是軍標(biāo)符號(hào)繪制問題,但上述方法未涉及態(tài)勢(shì)標(biāo)繪系統(tǒng)生成態(tài)勢(shì)圖互操作問題。本文以基本標(biāo)號(hào)為基礎(chǔ),設(shè)計(jì)含義豐富的組合標(biāo)號(hào),在提升標(biāo)繪效率的同時(shí)保證態(tài)勢(shì)圖互操作:首先將生成的復(fù)雜有意義的組合符號(hào)保存到重用標(biāo)號(hào)庫(kù),然后從標(biāo)號(hào)面板直接選擇標(biāo)繪,通過鼠標(biāo)點(diǎn)擊方式選中需要修改的基本標(biāo)號(hào),進(jìn)行有針對(duì)性的修改。標(biāo)繪重用標(biāo)號(hào)需要繪制各個(gè)基本標(biāo)號(hào)、修改形狀、編輯屬性等多個(gè)步驟,本文采用一次撤銷任意多個(gè)操作步驟方式,將繪制重用標(biāo)號(hào)過程組合為一個(gè)整體,一次撤銷。
1 標(biāo)號(hào)重用基本思想
態(tài)勢(shì)標(biāo)繪時(shí)如果沒有需要的標(biāo)號(hào),會(huì)通過調(diào)整多個(gè)基本圖形形狀、顏色、填充等形成一個(gè)新的圖形。如標(biāo)繪一個(gè)心形,但標(biāo)號(hào)庫(kù)中沒有此標(biāo)號(hào),可通過圓弧、折線等基本圖形形成一個(gè)心形,如圖1所示。這個(gè)新的圖形一段時(shí)間內(nèi)可能經(jīng)常會(huì)用到,如果每次都重新調(diào)整不僅要花費(fèi)很多時(shí)間,并且調(diào)整效果不佳,將新形成的圖形保存到重用標(biāo)號(hào)庫(kù)就可很好地解決這個(gè)問題。
基本標(biāo)號(hào)指標(biāo)號(hào)庫(kù)中已有標(biāo)號(hào)包括點(diǎn)狀標(biāo)號(hào)、線狀標(biāo)號(hào)等,如CDrawDot、CDrawLine等[6]。組合標(biāo)號(hào)是將標(biāo)繪的多個(gè)基本標(biāo)號(hào)組合為一個(gè)整體作為新的標(biāo)號(hào),如CDrawCombo,可與標(biāo)號(hào)庫(kù)已經(jīng)存在的點(diǎn)標(biāo)號(hào)、線標(biāo)號(hào)一樣進(jìn)行標(biāo)繪、移動(dòng)、縮放等操作。圖形對(duì)象模型如圖2所示,CDrawCombo記錄參與組合的所有標(biāo)號(hào),已經(jīng)參與組合的標(biāo)號(hào)不再作為一個(gè)獨(dú)立標(biāo)號(hào)保存在標(biāo)號(hào)鏈表中[7]。
標(biāo)號(hào)基類CDrawObj負(fù)責(zé)記錄對(duì)象公共屬性如標(biāo)號(hào)代碼、類型等,同時(shí)定義一些基本操作,如檢查是否選中、目標(biāo)移動(dòng)、縮放等,CDrawDot、CDrawLine、CDrawCombo根據(jù)各種類型特點(diǎn)處理標(biāo)號(hào)屬性與操作。工具基類(CDrawTool)定義一些虛函數(shù),如OnLButtonDown, OnMouseMove, OnLButtonDblClk等,這些函數(shù)在其子類中按照具體標(biāo)號(hào)類型進(jìn)行處理,CDotTool、CLineTool、CComboTool充當(dāng)對(duì)應(yīng)標(biāo)號(hào)對(duì)象的類工廠角色, 由它創(chuàng)建對(duì)應(yīng)類型標(biāo)號(hào)對(duì)象,分別用于繪制對(duì)應(yīng)類型,CSelectTool用于編輯已經(jīng)繪制的標(biāo)號(hào),如標(biāo)號(hào)選中、移動(dòng)、縮放等操作[8]。
2 標(biāo)號(hào)重用設(shè)計(jì)
標(biāo)號(hào)重用設(shè)計(jì)步驟:①繪制多個(gè)圖形對(duì)象,調(diào)整屬性、位置、形狀等,形成一個(gè)具有意義且以后可多次使用的圖形;②將多個(gè)標(biāo)號(hào)組合為一個(gè)組合標(biāo)號(hào);③輸入一個(gè)名稱,將該組合標(biāo)號(hào)保存到重用標(biāo)號(hào)庫(kù);④通過標(biāo)繪面板或查找方式找到已經(jīng)保存的重用標(biāo)號(hào)進(jìn)行標(biāo)繪;⑤如果重用標(biāo)號(hào)需要微調(diào)則選中該組合進(jìn)行調(diào)整,可調(diào)整組合中圖形對(duì)象的屬性。
XML(可擴(kuò)展標(biāo)記語(yǔ)言)用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語(yǔ)言,可用來標(biāo)記數(shù)據(jù)、定義數(shù)據(jù)類型,是一種允許用戶對(duì)自己的標(biāo)記語(yǔ)言進(jìn)行定義的源語(yǔ)言。XML簡(jiǎn)單,易于在任何應(yīng)用程序中讀寫數(shù)據(jù),所以重用標(biāo)號(hào)庫(kù)采用XML文件格式[9]。
2.1 重用標(biāo)號(hào)保存
重用標(biāo)號(hào)庫(kù)中保存的信息要能滿足復(fù)原該組合標(biāo)號(hào),并能方便查找,因此需要將圖形對(duì)象外接矩形的寬高、屬性、相對(duì)定位點(diǎn)、組合標(biāo)號(hào)名稱標(biāo)識(shí)、各個(gè)基本標(biāo)號(hào)的所有信息保存到庫(kù)中,同時(shí)還需要將組合標(biāo)號(hào)的快照保存為圖片以便在標(biāo)繪面板快速顯示。保存信息流程如下:①根據(jù)輸入的重用符號(hào)名稱,判斷該名稱符號(hào)是否已經(jīng)存在,如果存在直接返回,不存在則保存組合對(duì)象名稱;②保存重用符號(hào)外接矩形的寬、高;③依次保存重用符號(hào)中各個(gè)基本圖形對(duì)象編碼、類型等基本信息,并保存基本圖形對(duì)象的相對(duì)位置信息,即以組合標(biāo)號(hào)外接矩形的中心點(diǎn)為原點(diǎn),計(jì)算各圖形對(duì)象的定位點(diǎn)與中心點(diǎn)偏差,同時(shí)保存基本圖形對(duì)象的屬性信息,如顏色、線型、線寬等。
態(tài)勢(shì)標(biāo)繪時(shí)標(biāo)號(hào)要與具體地理位置相結(jié)合,但此時(shí)需要使用屏幕坐標(biāo),否則標(biāo)繪的重用符號(hào)會(huì)受地圖顯示比例尺影響。
2.2 標(biāo)號(hào)繪制
重用標(biāo)號(hào)繪制時(shí),可通過標(biāo)號(hào)面板或?qū)υ捒虿檎曳绞酱_定要繪制的組合標(biāo)號(hào),根據(jù)組合標(biāo)號(hào)名稱查找重用標(biāo)號(hào)庫(kù)中組合標(biāo)號(hào)信息。首先讀取組合標(biāo)號(hào)信息,增加一個(gè)CDrawCombo組合對(duì)象,然后讀取重用標(biāo)號(hào)庫(kù)中組合對(duì)象的寬、高,按照繪制尺寸要求計(jì)算比例Scale,再讀取重用標(biāo)號(hào)庫(kù)中的數(shù)據(jù),根據(jù)類型、編碼增加CDrawDot/CDrawLine對(duì)象,根據(jù)給定位置點(diǎn)和比例Scale計(jì)算基本標(biāo)號(hào)在屏幕繪制的位置點(diǎn)、尺寸,最后修改基本圖形對(duì)象屬性,繪制出與保存屬性一致的組合標(biāo)號(hào)。
2.3 組合調(diào)整
繪制的組合對(duì)象有時(shí)不能滿足要求,原因有二:①組合對(duì)象尺寸與標(biāo)號(hào)庫(kù)中的不一致,可通過整體縮放組合對(duì)象方式使其與其它標(biāo)號(hào)尺寸一致;②需要修改組合對(duì)象中部分要素屬性,如原本繪制為紅色的圖形對(duì)象需要修改為綠色,但其它屬性不變,這時(shí)可通過選中組合對(duì)象需要調(diào)整的部分進(jìn)行修改[10-11]。組合標(biāo)號(hào)調(diào)整流程如圖3所示。
此外,繪制組合對(duì)象隨時(shí)可取消組合,組合中的子圖形對(duì)象與從標(biāo)號(hào)庫(kù)中直接繪制的標(biāo)號(hào)同等使用,可在此基礎(chǔ)上增加、刪除、調(diào)整圖形對(duì)象,然后再次組合為新的組合標(biāo)號(hào)。如果只需要在組合對(duì)象中增加部分圖形對(duì)象,則可不取消組合,直接繪制需要添加的圖形對(duì)象,然后再次組合即可。
2.4 重用標(biāo)號(hào)庫(kù)維護(hù)
軍用態(tài)勢(shì)標(biāo)號(hào)庫(kù)不可能隨著需求的變化隨時(shí)增加,但其表達(dá)的含義靈活多變。標(biāo)號(hào)重用功能應(yīng)用場(chǎng)合很多,重用組合對(duì)象也會(huì)不斷變化,需要對(duì)重用標(biāo)號(hào)庫(kù)進(jìn)行維護(hù)。重用標(biāo)號(hào)庫(kù)中不滿足要求的組合對(duì)象分為兩種:①以后不再需要此種標(biāo)號(hào);②需要在原有組合對(duì)象中增加、調(diào)整部分圖形對(duì)象。 對(duì)于不再需要的組合對(duì)象可通過名稱查找該對(duì)象,刪除即可。在已經(jīng)保存的組合對(duì)象中增加、修改子圖形對(duì)象時(shí),要考慮標(biāo)號(hào)繪制、調(diào)整的方便性,采用先在繪圖區(qū)繪制、調(diào)整組合對(duì)象,然后根據(jù)需要再繪制需要增加的圖形對(duì)象方法。調(diào)整圖形對(duì)象屬性,將組合對(duì)象和新增加的圖形對(duì)象重新組合,替換重用標(biāo)號(hào)庫(kù)中的標(biāo)號(hào)。
3 關(guān)鍵技術(shù)研究
由于系統(tǒng)每一步操作都可有效記錄,因而有進(jìn)行Undo /Redo操作的基礎(chǔ)。將組合標(biāo)號(hào)作為一個(gè)整體在數(shù)據(jù)管理中已經(jīng)作了多個(gè)操作,如增加一個(gè)組合對(duì)象,繪制各個(gè)基本圖形對(duì)象,然后將這個(gè)圖形對(duì)象加入到組合對(duì)象中,在Undo /Redo中操作等。但這些操作是任意的,不可能先定義好再完成,因此本文采用自定義任意步驟撤銷恢復(fù)方式[13]。
3.1 數(shù)據(jù)模型
Undo/Redo操作按照Command模式思想設(shè)計(jì), 即把每一個(gè)可能執(zhí)行的操作命令當(dāng)作對(duì)象看待,在每次操作時(shí),不但要對(duì)圖形對(duì)象的數(shù)據(jù)集合進(jìn)行操作,還要把相應(yīng)操作的命令名稱和相關(guān)數(shù)據(jù)進(jìn)行記錄和管理。為實(shí)現(xiàn)標(biāo)號(hào)重用的一次性撤銷任意步驟操作,需要增加一個(gè)類CMultiCommond,將一次性撤銷的操作記錄到該類中,使用CCommandHistory記錄所有命令[14]。Undo/Redo數(shù)據(jù)模型如圖4所示。
CCommand基類定義了命令類基本方法,采用虛函數(shù)定義,即各個(gè)具體操作命令類需要根據(jù)自身功能對(duì)這些成員函數(shù)進(jìn)行重載。GetName()獲得命令名稱,GetUndoCommand()獲得該命令執(zhí)行Undo操作時(shí)對(duì)應(yīng)命令類對(duì)象指針; GetRedoCommand()獲得該命令執(zhí)行Redo操作時(shí)對(duì)應(yīng)命令類對(duì)象指針, Execute()執(zhí)行該命令[15]。
CMultiCommond類除了重載CCommand基類基本方法外,還需要增加AddCommand()方法,用于將命令添加到該對(duì)象中,SetName()用來設(shè)置多步動(dòng)作名稱。
此外,一次撤銷/恢復(fù)任意步操作設(shè)計(jì)可在其它方面應(yīng)用,如態(tài)勢(shì)標(biāo)繪軟件一般都會(huì)針對(duì)特定需求開發(fā)一些快速標(biāo)圖功能,按照用戶需要設(shè)置標(biāo)號(hào)樣式,需要很多操作步驟才能完成,過去實(shí)現(xiàn)這些功能時(shí)不提供Undo/Redo,或者要很多次才能完成撤銷功能。但如果采用一次撤銷/恢復(fù)任意步操作設(shè)計(jì)即可實(shí)現(xiàn)一步操作一步撤銷,操作方式統(tǒng)一,用戶使用方便。
5 結(jié)語(yǔ)
本文以基本標(biāo)號(hào)為基礎(chǔ)設(shè)計(jì)了含義豐富的組合標(biāo)號(hào),在提升標(biāo)繪效率的同時(shí)保證了態(tài)勢(shì)圖的互操作,對(duì)于需要嚴(yán)格遵循標(biāo)準(zhǔn)而又有新使用需求的系統(tǒng)設(shè)計(jì)具有一定的借鑒意義,設(shè)計(jì)的撤銷/恢復(fù)方法可實(shí)現(xiàn)任意步驟撤銷,提高了效率。但本系統(tǒng)實(shí)現(xiàn)控制邏輯復(fù)雜,后續(xù)將進(jìn)一步研究簡(jiǎn)化方案。
參考文獻(xiàn):
[1] 高亞飛,卜凡亮.?基于WebGIS的警務(wù)輔助模塊的設(shè)計(jì)與實(shí)現(xiàn)[J].?現(xiàn)代計(jì)算機(jī)(專業(yè)版),2018,33(6):159-135.
[2] 婁世平,楊玉永,劉瑞峰,等. 分布式地震應(yīng)急救援態(tài)勢(shì)標(biāo)繪系統(tǒng)[J].?地震地磁觀測(cè)與研究,2017,16(5):95-103.
[3] 李立夏,夏學(xué)知,涂葵.??艦載指控中協(xié)同態(tài)勢(shì)標(biāo)繪系統(tǒng)的研究與設(shè)計(jì)[J]. 計(jì)算機(jī)工程,2010,25(16):91-98.
[4] 黃森,岳春生,奚玲. 基于算法組合模型的軍標(biāo)符號(hào)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 信息工程大學(xué)學(xué)報(bào),2012,13(6):749-752,762.
[5] 趙周,陳敏,湯曉安,等. 動(dòng)態(tài)軍標(biāo)符號(hào)的實(shí)現(xiàn)方法研究[J]. 計(jì)算機(jī)工程與設(shè)計(jì),2007,42(12):3023-3025.
[6] 柳楊,郭蕊. 移動(dòng)終端實(shí)時(shí)態(tài)勢(shì)綜合標(biāo)繪系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].?大眾科技,2017,16(3):58-63.
[7] 金鑫. 基于AutoCAD二次開發(fā)的新型軍事標(biāo)圖系統(tǒng)構(gòu)架研究[C]. 中國(guó)指揮與控制學(xué)會(huì)第五屆中國(guó)指揮控制大會(huì)論文集,2017:168-173.
[8] 李鵬飛,周楊,許繼偉,等. ?雙模三維環(huán)境下的態(tài)勢(shì)標(biāo)繪技術(shù)研究[J]. ?測(cè)繪科學(xué)技術(shù)學(xué)報(bào),2016,15(2):31-39.
[9] JIANG H W,CHE X J,GAO Z H,et al. Design and realization of 3D irregular military symbols based on B-Spline[C]. Changchun:The 5th International Conference on Frontier of Computer Science and Technology, 2010:515-517.
[10] 何利明.? 二維軍標(biāo)生成與態(tài)勢(shì)標(biāo)繪技術(shù)研究[D]. 武漢:華中科技大學(xué),2015.
[11] 吳亞非,臧義華. 態(tài)勢(shì)標(biāo)繪軟件跨平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)與現(xiàn)代化,2015,14(12):74-77.
[12] 朱振華,汪寧,李超. 基于Raphael態(tài)勢(shì)標(biāo)繪的研究與實(shí)現(xiàn)[J]. 測(cè)繪與空間地理信息,2019,42(6):85-89.
[13] 趙高長(zhǎng). 多步無限撤銷及恢復(fù)算法與實(shí)現(xiàn)[J]. 西安科技大學(xué)學(xué)報(bào),2009,29(4):500-504.
[14] KARL LEIBINGER,MEDIZINTECHNIK GMBH.Bone implant for the reconstruction of an osseous defect and for guiding a marking and/or processing tool for transferring required osteotomy situations[M].? Medical Patent Business Week,2020.
[15] KAREL JAKUBEC,MAREK POLáK,MARTIN NE ASKY,et al. Undo/redo operations in complex environments[M]. ?Procedia Computer Science,2014.
[16] YUAN C, HE F Z, XU B,et al. A multi-user selective undo/redo approach for collaborative CAD systems[J].? Journal of Computational Design and Engineering,2014,45 (2):1504-1522.
(責(zé)任編輯:杜能鋼)