亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于圖元組合模型的矢量化符號動態(tài)標繪方法與流程

文檔序號:12469499閱讀:466來源:國知局
基于圖元組合模型的矢量化符號動態(tài)標繪方法與流程

本發(fā)明公開了基于圖元組合模型的矢量化符號動態(tài)標繪方法,屬于數(shù)字處理的技術(shù)領(lǐng)域。



背景技術(shù):

目前對于動態(tài)矢量化符號的實現(xiàn)有兩種方法:①在已有的軟件基礎(chǔ)上利用其二次開發(fā)語言及自身的圖形編輯功能來實現(xiàn),如Mapinfo公司的MapBasic語言和Arclnf08.01的ArcMap模塊中的交互符號設(shè)計系統(tǒng)StyleManage;②針對具體軟件提供的功能來設(shè)計、繪制符號,如Maplnfo公司的MapX組件。雖然以上方法各有特點,但是使用較復雜,需要開發(fā)人員花費大量時間熟悉軟件使用方法,并且這類畫圖軟件所繪制的矢量符號對其平臺依賴性很強,需要對已經(jīng)繪制好的矢量符號進行小的修改,比如:角度的變化、寬度的變化等,都相當于重新再繪制一個新的符號。同時,由于各軟件的差異,構(gòu)建出的動態(tài)符號缺乏通用性,無法跨平臺移植。矢量標繪文件與矢量標繪加載代碼不能有效分離,兩者之間耦合性高。不利于再修改等后期操作,增加了開發(fā)人員的工作量。



技術(shù)實現(xiàn)要素:

本發(fā)明的發(fā)明目的是針對上述背景技術(shù)的不足,提供了基于圖元組合模型的矢量化符號動態(tài)標繪方法,將XML文件和math標簽結(jié)合起來用以得到對應于基本圖元模型的動態(tài)矢量標識,實現(xiàn)了符號的動態(tài)標繪,解決了XML文檔與結(jié)構(gòu)耦合度高,后期難以對矢量符號擴展,跨平臺移植難的技術(shù)問題。

本發(fā)明為實現(xiàn)上述發(fā)明目的采用如下技術(shù)方案:

基于圖元組合模型的矢量化符號動態(tài)標繪方法,包括如下步驟:

A、建立基本圖元模型庫;

B、描述符號XML文件,所述符號生成XML文件包括:描述符號應用場景的根節(jié)點以及分別描述主控制點集、從屬控制點集的子節(jié)點,所述描述主控制點集的子節(jié)點從屬于根節(jié)點,描述從屬控制點集的子節(jié)點從屬于描述主控制點集的子節(jié)點,其中,

根節(jié)點包含但不限于圖元集信息,圖元集包含用于組合生成符號的各基本圖元,

描述主控制點集的子節(jié)點包含但不限于:主控制點位置信息以及描述用于計算主控制點位置信息運算的math標簽,主控制點集為決定各圖元形狀的點的集合,

描述從屬控制點集的子節(jié)點包含但不限于:從屬控制點位置信息以及描述用于計算從屬控制點位置信息運算的math標簽,從屬控制點集為配合各主控點確定圖元形狀的點的集合;

C、解析符號XML文件獲取對應于基本圖元模型庫的矢量標識,提取各矢量標識的主控制點位置信息、從屬控制點位置信息;

D、依據(jù)基本圖元模型庫,根據(jù)步驟C解析得到的矢量標識以及提取的主控制點位置信息、從屬控制點位置信息標繪圖元,組合各圖元生成符號。

進一步的,所述基于圖元組合模型的矢量化符號動態(tài)標繪方法中,步驟B描述的符號XML文件中,根節(jié)點還包含擴展集,擴展集包含用于組合生成符號的組合圖元。

進一步的,所述基于圖元組合模型的矢量化符號動態(tài)標繪方法中,根節(jié)點、描述主控制點集的子節(jié)點、描述從屬控制點集的子節(jié)點都包含描述自身與其它節(jié)點相互關(guān)系的索引信息。

作為所述基于圖元組合模型的矢量化符號動態(tài)標繪方法的再進一步優(yōu)化方案,步驟C中所述從屬控制點位置信息根據(jù)從屬控制點和主控制點的位置關(guān)系提取。

進一步的,所述基于圖元組合模型的矢量化符號動態(tài)標繪方法,步驟A中建立的基本圖元模型庫包括:線圖元、圓圖元、圓弧圖元、矩形圖元、曲線圖元、多邊形圖元。

本發(fā)明采用上述技術(shù)方案,具有以下有益效果:

(1)本發(fā)明提供了一種標繪動態(tài)符號的方法,用XML來繪制矢量符號實現(xiàn)了描繪文件和繪制平臺的分離,通過解析符號XML文件得到對應于基本圖元模型的矢量標識,再結(jié)合math標簽實現(xiàn)了矢量標識的動態(tài)調(diào)整,進而實現(xiàn)了符號的動態(tài)標繪,提高了繪圖精度,節(jié)省了大量學習專業(yè)繪制矢量圖標軟件的時間,為后期的矢量符號擴展、擴平臺移植提供了極大的方便。

(2)本發(fā)明還提供了三維擴展空間,為未來實現(xiàn)立體化、空間化呈現(xiàn)矢量符號提供了可能,可拓展至地質(zhì)勘探、建筑等領(lǐng)域。

附圖說明

圖1為動態(tài)矢量符號的圖元組合模型。

圖2為動態(tài)標繪矢量化符號的示意圖。

圖3為需繪制的鉗擊箭頭符號。

圖4為標識出圖3所示符號主控制點、從屬控制點的矢量符號。

圖5為解析XML文件后表達的矢量標識。

圖6為調(diào)整控制點后得到的矢量標識。

具體實施方式

下面結(jié)合附圖對發(fā)明的技術(shù)方案進行詳細說明。本發(fā)明旨在解決XML文檔與結(jié)構(gòu)耦合度高的問題,提出一種動態(tài)矢量符號標繪方法,使得標繪出的符號在后期能夠得以擴展并跨平臺移植。XML本身只是使用元素和屬性來描述而不提供用來顯示數(shù)據(jù)的方法,這使得矢量標繪文件與矢量標繪加載代碼有效分離,math標簽定義的數(shù)學運算和XML文件提取的信息相結(jié)合可以得到對應于基本圖元模型的矢量標識,這大大簡化了矢量符號的標繪過程,減輕了開發(fā)人員的工作量。

為了解決動態(tài)矢量化符號標繪中存在的諸多問題,本說明提供了一種新的針對動態(tài)矢量符號的標繪方法,并運用開源的TinyXML的解析XML解析庫對文件進行解析,使用簡單,容易上手。這個解析庫的模型通過解析XML文件,然后在內(nèi)存中生成DOM模型,從而讓我們很方便的遍歷這棵XML樹。該方法充分利用可擴展標繪語言XML強大的自我描述能力、開放性、平臺無關(guān)性和靈活性特點,建立一種通用的動態(tài)矢量符號標繪的方法,本矢量標繪規(guī)范基于Utf-8字符集,并參考了W3C制定的XML標準和Math標準。

動態(tài)矢量符號的圖元組合模型如圖1所示,通過解析矢量化符號描述文件,讀取主控制點,進而計算出從屬控制點,然后從圖元模板庫獲得基礎(chǔ)圖元并進行組合,最后生成對應動態(tài)矢量符號。

該矢量標繪文件以XML格式進行存儲,其文件包含一個根節(jié)點,即場景根節(jié)點,根節(jié)點下面有4個子節(jié)點,分別是主控制點集、從屬點集、圖元集和擴展。

(1)詳細的結(jié)構(gòu)框架如下所示:

<場景根節(jié)點>

<主控點集>...</主控點集>

<從屬點集>...</從屬點集>

<圖元集>...</圖元集>

<擴展></擴展>

</場景根節(jié)點>

(2)文件標簽的詳細描述

●主控點集

標簽名稱:CtrlPoints

父節(jié)點:Scene

子節(jié)點:CtrlPoint

屬性:無

●主控制點

標簽名稱:CtrlPoint

父節(jié)點:CtrlPoints

子節(jié)點:無

屬性:x軸相對坐標,y軸相對坐標,z軸相對坐標

值:控制點集

●從屬點集

標簽名稱:DependentPoints

父節(jié)點:Scene

子節(jié)點:DependentPoint

屬性:無

值:無

●從屬點

標簽名稱:DependentPoint

父節(jié)點:DependentPoints

子節(jié)點:CtrlPointIndexs,DependentPointCoord

屬性:無

值:主控點索引信息、從屬點坐標信息

●主控點索引集

標簽名稱:CtrlPointIndexs

父節(jié)點:DependentPoint

子節(jié)點:CtrlPointIndex

屬性:無

值:主控點索引信息集合

●主控點索引

標簽名稱:CtrlPointIndex

父節(jié)點:CtrlPointIndexs

子節(jié)點:無

屬性:索引信息,包含一個相關(guān)主控點的索引值

值:無

●從屬點位置

標簽名稱:DependentPointCoord

父節(jié)點:DependentPoint

子節(jié)點:math

屬性:無

值:生成點位置的相關(guān)數(shù)學邏輯,按x、y、z的順序存放

●圖元集

標簽名稱:Primitives

父節(jié)點:Scene

子節(jié)點:Primitive

屬性:無

值:組成標繪的圖元集合

●圖元

標簽名稱:Primitive

父節(jié)點:Primitives

子節(jié)點:PointIndex、Interpolation、PrimitiveType

屬性:name,type,isfilled

值:組成標繪的單個圖元

●點集

標簽名稱:PointIndex

父節(jié)點:Primitive

子節(jié)點:CtrlPointIndex,DependentPointIndex

屬性:

值:無

●插值參數(shù)

標簽名稱:Interpolation

父節(jié)點:Primitive

子節(jié)點:無

屬性:無

值:插值參數(shù)值

●圖元樣式

標簽名稱:PrimitiveType

父節(jié)點:Primitive

子節(jié)點:無

屬性:無

值:圖元樣式序號

●擴展

標簽名稱:Extension

父節(jié)點:Primitive

子節(jié)點:AddedCtrlPoint

屬性:無

值:新增點集

●新增點集合

標簽名稱:Extension

父節(jié)點:Scene

子節(jié)點:AddedCtrlPoint

屬性:無

值:新增點集合

●新增點

標簽名稱:AddedCtrlPoint

父節(jié)點:Extension

子節(jié)點:math

屬性:新增點初始坐標

值:新增點坐標的數(shù)學邏輯

(3)math標簽詳細說明

●加法

標簽名稱:mplus

子節(jié)點:包含多個數(shù)學邏輯標簽,各標簽代表加數(shù)

●乘法

標簽名稱:mmult

子節(jié)點:包含多個數(shù)學邏輯標簽,各標簽代表乘數(shù)

●除法

標簽名稱:mfrac

子節(jié)點:包含兩個子節(jié)點,分別代表被除數(shù)和除數(shù)

●乘方

標簽名稱:mpow

子節(jié)點:包含一個子節(jié)點,代表底數(shù)

參數(shù):包含一個參數(shù),代表指數(shù)

●常量

標簽名稱:mn

值:一個雙精度浮點數(shù)

●變量

標簽名稱:mi

值:一個在前文引用過的索引值

為了方便動態(tài)矢量符號的繪制,定義如表1的基本圖元,表1所示基本圖元組成本發(fā)明涉及的基本圖元模型庫。

表1基本圖元定義表

通過對以上XML文件標簽和math標簽的詳細描述,根據(jù)框架結(jié)構(gòu)對標識進行標準格式存儲。步驟如下:

1、建立坐標軸,確定主控制點、并由主控制點確定從屬控制點表達式;

2、根據(jù)結(jié)構(gòu)框架及標簽表達矢量符號;

(3)從屬點相關(guān)注意事項

從屬點是根據(jù)兩個控制點求得的。由CtrlPointIndexs可以求得從屬點所依附的兩個控制點。按CtrlPointIndexs所表示的控制點下標的順序,我們將這兩個控制點依次表示為(x1,y1)和(x2,y2)。不同從屬點所依賴的控制點有可能不一樣,但數(shù)目都是2,所以我們就用(x1,y1)和(x2,y2)表示兩個控制點。從屬點的位置和其所依附的控制點有關(guān),計算從屬點的核心問題即是獲取從屬點與控制點之間的關(guān)系公式。

以上信息為對動態(tài)符號的節(jié)點等的定義描述,完成文件描述以后,對文件進行解析及表達,如圖2所示。

基本圖元模型庫中有對點、線、矩形、圓、弧線、曲線六種基本圖元的定義,并且完成對矢量符號的描述文件。

基本圖元模型庫中的基本圖元構(gòu)成圖元模板庫,圖元模板庫中存儲的是定義好的一些基本圖元類型,包括名稱及其屬性,屬性又包括:標記、表達條件、說明。

圖形庫借助于QT強大的繪圖功能完成對基本圖元所定義的點、線、矩形、圓、弧線、曲線的繪制。當完成對圖元模型文件的解析之后,從圖元模板庫中調(diào)用基本圖元并在圖形表達庫繪制并動態(tài)組合,最終根據(jù)坐標表達出矢量符號。

三.附圖說明

如圖3所示的要求繪制的矢量符號,要求該圖兩個頂角均為30°。

如圖4所示建立好坐標軸,由上文所定義的基本圖元對所給符號進行拆分可知,矢量符號頂部的兩個三角頂角由折線構(gòu)成,其余部分由4條曲線構(gòu)成。根據(jù)每個圖元所需的基本點數(shù)來確定每條曲線上的基本點數(shù)。由于該矢量符號具有對稱性,所以只需確定x軸右側(cè)的坐標點,經(jīng)過調(diào)整相應對稱點的x坐標即可表達另一側(cè)的坐標點。

首先,根據(jù)需要賦予主控制點A0至A8合適的坐標,如:主控制點A0:(0.0,0.0,0.0),主控制點A1:(2.0,0.0,0.0)。

其次,主控制點坐標確定以后,由頂角30°以及軸對稱可得從屬控制點的坐標如下:

從屬控制點B0依附于主控制點A1、主控制點A2,主控制點A1、主控制點A2坐標參數(shù)表達為(x1,y1,z1)、(x2,y2,z2),因此,從屬控制點B0的表達式為:(tan15°×(y1-y2)+x2,-tan15°×(x1-x2)+y2,0)。

同理,從屬控制點B1的表達式為(-tan15°×(y1-y2)+x2,tan15°×(x1-x2)+y2,0)。

再次,根據(jù)定義的math標簽以及表達式表達各個從屬控制點的坐標。只舉例從屬控制點0的表達。

從屬控制點0

最后,以點集、基本圖元等表達矢量符號的各個部分,進行拼接。本文只舉圖4中右上頂角繪制的例子。

<Primitive name="圖元0"type="Line"isfilled="0">//圖元索引值為0,類型為線段,非填充

按折線的索引點順序連接各點即可。

圖5是經(jīng)過解析平臺解析xml文件后所對應的矢量標識,圖6是經(jīng)過對控制點的調(diào)整獲得的調(diào)整后的矢量標識。用戶可根據(jù)自己的需要調(diào)整各控制點來獲得自己所需的動態(tài)矢量標識。

綜上所述,本發(fā)明具有以下有益效果:

(1)本發(fā)明提供了一種標繪動態(tài)符號的方法,用XML來繪制矢量符號實現(xiàn)了描繪文件和繪制平臺的分離,通過解析符號XML文件得到對應于基本圖元模型的矢量標識,再結(jié)合math標簽實現(xiàn)了矢量標識的動態(tài)調(diào)整,進而實現(xiàn)了符號的動態(tài)標繪,提高了繪圖精度,節(jié)省了大量學習專業(yè)繪制矢量圖標軟件的時間,為后期的矢量符號擴展、擴平臺移植提供了極大的方便。

(2)本發(fā)明還提供了三維擴展空間,為未來實現(xiàn)立體化、空間化呈現(xiàn)矢量符號提供了可能,可拓展至地質(zhì)勘探、建筑等領(lǐng)域。

通過以上的實施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案實質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機、服務器,或者網(wǎng)絡設(shè)備等)執(zhí)行本發(fā)明的實施例或?qū)嵤├哪承┎糠炙龅姆椒ā?/p>

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1