亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        DXF到SVG圖元轉(zhuǎn)換關(guān)鍵問題分析

        2010-08-28 02:30:28輝,劉星,鄭
        關(guān)鍵詞:正點圖元矢量

        劉 輝,劉 星,鄭 靜

        (東北大學(xué) 信息科學(xué)與工程學(xué)院,遼寧 沈陽 110819)

        DXF到SVG圖元轉(zhuǎn)換關(guān)鍵問題分析

        劉 輝,劉 星,鄭 靜

        (東北大學(xué) 信息科學(xué)與工程學(xué)院,遼寧 沈陽 110819)

        為了實現(xiàn)礦圖的重新發(fā)布,通過分析AutoCAD數(shù)據(jù)格式(DXF文件)和SVG格式標(biāo)準,建立DXF文件中的實體和SVG中的元素之間的對應(yīng)關(guān)系.詳細分析了關(guān)鍵的復(fù)雜圖元對象(文字,多線)以及非圖元對象(坐標(biāo)系,顏色)到SVG的轉(zhuǎn)換,以便更方便地運用到WebGIS的礦圖發(fā)布.編程測試證明,重新發(fā)布的礦圖與原圖基本相同.

        DXF;圖元;SVG

        DXF文件是AUTODESK公司提出的一種專用的CAD數(shù)據(jù)交換格式,是一種具有專門格式的ASCII碼文本文件,比較好讀,易于被其它程序處理,主要用于實現(xiàn)高級語言編寫的程序與AutoCAD系統(tǒng)的連接,或其它CAD系統(tǒng)與AutoCAD之間的圖形文件交換[1].但是由于DXF不能描述空間信息的完整幾何模型,難以進一步發(fā)展;其信息定義不完整,僅保留了原有系統(tǒng)數(shù)據(jù)結(jié)構(gòu)中的幾何和部分屬性信息,而大量的拓撲信息已不復(fù)存在;其信息描述方面也有許多缺陷,致使一些信息量過分冗長,文件格式比較復(fù)雜而且不盡合理[2].而XML(Extended Markup Language,可擴展標(biāo)記語言)作為目前互聯(lián)網(wǎng)上廣泛流行的數(shù)據(jù)交換標(biāo)準,具有結(jié)構(gòu)化、可擴展性以及靈活性等特點,所以設(shè)計一種基于XML模式的可描述礦圖圖形的標(biāo)記語言對礦圖進行描述.利用所生成的礦圖標(biāo)記語言(XML文件),作為中性文件可實現(xiàn)礦圖數(shù)據(jù)的交換和發(fā)布,還可利用關(guān)系數(shù)據(jù)庫實現(xiàn)對XML文件的管理.為了實現(xiàn)礦圖的重新發(fā)布,必須把礦圖標(biāo)記語言文件通過XSLT轉(zhuǎn)換語言轉(zhuǎn)換為另一種XML格式的文件——SVG.使用SVG可以在網(wǎng)頁上顯示出各種各樣的高質(zhì)量二維矢量圖形,包括圖像處理中常見的許多功能,如圖形、文字、動畫、色彩和濾鏡效果等.但SVG不同于傳統(tǒng)的二維(平面)圖形,而是使用簡單的一維(文本)指令,完成矢量圖形特征的描述[3].盡管DXF文件和SVG文件在表示方式上有一定的相似之處,都通過記錄圖形的特征數(shù)據(jù)來描述矢量圖形,但在有些實體的描述上,兩者存在差異,比如坐標(biāo)系、文字等[4].本文在此基礎(chǔ)上著重分析了關(guān)鍵圖元的轉(zhuǎn)換問題.

        1 DXF數(shù)據(jù)組織結(jié)構(gòu)

        DXF文件描述了AutoCAD圖形數(shù)據(jù)庫中所包含的全部信息,是圖形完全等價的矢量表達形式.DXF本質(zhì)上由代碼及關(guān)聯(lián)值對組成,稱為組碼和組值.每個組碼和組值各占一行,組碼是一個整數(shù),表明了其后數(shù)據(jù)元素的類型,也指出了數(shù)據(jù)元素對于給定對象(或記錄)類型的含意;組值是數(shù)據(jù)類型,根據(jù)組碼的數(shù)值可以是字符串型、整型或浮點數(shù)型等.通過使用這些配對的組碼和組值,DXF文件被組織成段,這些段由記錄組成,而記錄又由依次排列的組碼和數(shù)據(jù)條目組成.完整的DXF文件由7段SECTION組成,每段由一行組碼0及一行字符串SECTION開始,緊接著組碼2及一行表示段名稱的字符串;段的結(jié)束由一行組碼0及一行字符ENDSEC表示.這些段中的內(nèi)容由對象或圖元組成,而這些對象或圖元由標(biāo)志它們屬性的組碼和組值組成.整個文件以一行組碼0及一行EOF結(jié)束[5],其文件結(jié)構(gòu)如圖1所示.

        2 SVG數(shù)據(jù)組織結(jié)構(gòu)

        SVG是一種標(biāo)準、開放、可縮放的矢量圖形規(guī)范,是一種基于XML來描述二維矢量圖形和矢量/點陣混合圖形的置標(biāo)語言,是一種全新的矢量圖形規(guī)范.SVG圖形包括框架元素和圖形元素,框架元素能夠包含圖形元素和其他框架元素.

        (1)主要的框架元素有

        (2)圖形元素包括路徑

        3 DXF到SVG圖元的轉(zhuǎn)換

        該轉(zhuǎn)換實現(xiàn)從DXF礦圖文件到礦圖標(biāo)記語言(XML文件)的轉(zhuǎn)換,然后通過XSLT語言實現(xiàn)XML格式到SVG的簡單轉(zhuǎn)換,最后實現(xiàn)礦圖的發(fā)布.XSLT語言,它代表eXtensible Stylesheet Language:Transformations(即擴展樣式表語言:轉(zhuǎn)換),是一種用來將一個XML文檔的結(jié)構(gòu)進行轉(zhuǎn)換的語言,是XSL(eXtensible Stylesheet Language,擴展樣式表語言)語言的一部分.XSL用來定義XML文檔的格式和表現(xiàn)方式,用于其在屏幕上的顯示、打印到紙上或是作為語音輸出[6].下面介紹復(fù)雜的圖元對象和非圖元對象的轉(zhuǎn)換.

        以往研究DXF到SVG的圖元轉(zhuǎn)換的文獻,如文獻[4]中CAD文件轉(zhuǎn)換為SVG文件的探討,主要針對坐標(biāo)系統(tǒng)、圓弧橢圓、文字等進行轉(zhuǎn)換.通過細致研究了前人的轉(zhuǎn)換方法后,本文提出了一些新的轉(zhuǎn)換方法和一些比較復(fù)雜圖元的轉(zhuǎn)換方法,并通過VC++6.0加以測試實現(xiàn).

        3.1 坐標(biāo)系的轉(zhuǎn)換

        在AutoCAD中采用的是世界坐標(biāo)系(WCS),也就是說坐標(biāo)原點在屏幕的左下角,X軸向右為正方向,Y軸向上為正方向.而SVG坐標(biāo)原點在初始視口(屏幕)的左上角,X軸的正向朝右,Y軸的正向朝下.可通過XSLT語言從礦圖標(biāo)記語言到SVG里實現(xiàn)坐標(biāo)系的轉(zhuǎn)換.在轉(zhuǎn)換后的礦圖標(biāo)記語言(XML文件)里面存儲了DXF文件中所有圖元的橫縱坐標(biāo)的最大值和最小值(Xmin,Ymin,Xmax,Ymax),這樣可以在SVG里定義圖形的視口.

        對于坐標(biāo)系的轉(zhuǎn)換,除了在文獻[4]中提到的方法之外,本文提出了另兩種轉(zhuǎn)換方法.

        (1)在對應(yīng)的視口元素中加入:transform=“translate(0,Ymax)scale(1,-1)”.上述語句中:translate(0,Ymax)的意思是將坐標(biāo)原點由原來的位置平移到點(0,Ymax)的位置,而scale(1,-1)的含義是X軸的正方向不變,Y軸的正方向與原來相反.其中Ymax表示從DXF文件中讀取的最大縱坐標(biāo).

        (2)直接在XSLT文件中針對對應(yīng)的每一個圖元的縱坐標(biāo)做y=-y+Ymax變換.代碼如下:

        3.2 顏色

        AutoCAD系統(tǒng)采用顏色索引(ACI),用0~255的整數(shù)表示256種顏色[7].而SVG中采用RGB顏色系統(tǒng),利用(Red,Green,Blue)三元組來表示一種顏色值,其中,Red、Green和Blue分別代表3種基色的取值,范圍從0~255.所以本文在XML文件轉(zhuǎn)換時就實現(xiàn)顏色的轉(zhuǎn)換,SVG直接從XML文件中提取.由于ACI與RGB顏色系統(tǒng)存在一定對應(yīng)關(guān)系,最直接簡單的辦法就是通過窮舉法實現(xiàn)顏色的對應(yīng)關(guān)系,例如轉(zhuǎn)換函數(shù):CreateXmlDocument::CADToRGB_color(int color,double&r,double&g,double&b);其中參數(shù)color代表了AutoCAD的顏色,通過窮舉找到對應(yīng)的RGB.C++代碼如下:

        3.3 文字

        在將礦圖標(biāo)記語言向SVG轉(zhuǎn)換之后,可能出現(xiàn)中文文字在SVG中不能正常顯示的情況.這是因為SVG有iso-8859-1(ASCII)、utf-8和utf-16共3種編碼形式,ASCII碼不能直接使用漢字字符,utf-8和utf-16是Unicode形式的編碼.utf-8支持多種語種,每個ASCII字符使用一個字節(jié)表示,其它字符使用3個字節(jié)來表示;utf-16則對于任何一個字符都是使用2個字節(jié)來表示,這2種編碼都能正常顯示漢字[8].編程時,如果直接生成SVG文檔,則文檔使用的是ASCII碼,所以不能正常顯示漢字.需要將ASCII碼文檔轉(zhuǎn)換成Unicode,可利用函數(shù)C++庫函數(shù)WideCharToMultiByte實現(xiàn)文字的轉(zhuǎn)換問題.

        3.4 多線(MLINE)

        DXF對于多線的處理比較復(fù)雜,必須通過計算才可以得出兩條折線,對應(yīng)于SVG的

        ①對正信息,如圖2所示.

        ②比例因子,表示兩條線之間的寬度;

        ③對正點的坐標(biāo);

        ④每個對正點到上線和下線的距離(有可能是負的),由每一對組碼所對應(yīng)的組值相減而得,分別為d1即對正點到上線的距離、d2即對正點到下線的距離;

        ⑤從該頂點開始的線段的方向矢量,(12,22)對應(yīng)的組值,即為(u1,v1);

        ⑥此頂點處的斜接方向矢量,(13,23),即為(u2,v2).計算方法如圖3所示.

        這條MLINE采用居中正對,令B的坐標(biāo)為(x,y),C的坐標(biāo)為(x1,y1),A的坐標(biāo)為(x2,y2),從對正點B開始的線段的方向矢量表示單位方向的向量,即方向為模長為1;從對正點B點處的斜接方向矢量為,模長為1.所以現(xiàn)在只要求得A、C的坐標(biāo)即可:

        其中對應(yīng)的值為:

        代入可以得到A、C的坐標(biāo):

        4 結(jié)束語

        本文詳細介紹了DXF實體到SVG元素之間的轉(zhuǎn)換方法,在前人研究基礎(chǔ)上提出了新的轉(zhuǎn)換方法,分析了比較復(fù)雜的圖元對象的轉(zhuǎn)換方法,并在轉(zhuǎn)換過程中給出了具體的解決方案.通過實現(xiàn)DXF數(shù)據(jù)到SVG數(shù)據(jù)的轉(zhuǎn)換,一方面解決了礦圖數(shù)據(jù)網(wǎng)絡(luò)化應(yīng)用中存在的現(xiàn)實問題,為煤礦企業(yè)信息系統(tǒng)建設(shè)尤其是WebGIS系統(tǒng)的建設(shè)提供了空間數(shù)據(jù)格式方面的參考;另一方面,在礦圖空間數(shù)據(jù)格式標(biāo)準化方面具有很好的參考和實用價值.

        [1]史玉紅.淺談AutoCAD的接口DXF文件 [J].山東煤炭科技,2002(1):38-39.

        [2]陳曉兵.基于Web和數(shù)據(jù)庫的AutoCAD圖形文件的數(shù)據(jù)交換[J].組合機床與自動化加工技術(shù),2003(11):38-41.

        [3] 袁家政.可伸縮矢量圖形SVG的數(shù)據(jù)表示研究[D].北京:北京交通大學(xué),2007.

        [4]柳 玲,李百戰(zhàn),楊明宇.CAD文件轉(zhuǎn)換為SVG文件的探討[J].計算機應(yīng)用,2006,26(B06):51-53.

        [5]李芳珍,許倫輝.DXF文件格式及其外部接口的研究[J].兵工自動化,2008,27(7):83-85.

        [6]尹章才,李 霖.基于XML的地理信息可視化方法優(yōu)化研究[J].武漢理工大學(xué)學(xué)報,2006,28(2):45-48.

        [7]劉俊荷.礦圖[M].北京:煤炭工業(yè)出版社,2005.

        [8]黃凱偉.SVG開發(fā)實踐[M].北京:電子工業(yè)出版社,2008.

        Analysis on key issues about conversion from DXF to SVG metafile

        LIU Hui,LIU Xing,ZHENG Jing
        (School of Information Science and Engineering,Northeastern University,Shenyang 110819,China)

        In order to re-release Mine maps,the AutoCAD data formats(DXF files)and SVG format standard are analyzed,and the corresponding relationship between the entities of DXF files and SVG elements is established. Then the conversion from the key and complex metafile objects(text,line)and non-metafile objects(coordinates,color)to SVG is analyzed at length.By doing so,it can be more easily applied to the map releasing of WebGIS.At last,programming is made to testify that the re-released mine map is basically same with the original mine map.

        DXF;metafile;SVG

        book=4,ebook=137

        TP319

        A

        1671-024X(2010)04-0078-03

        2010-03-25 基金項目:國家2006年度安全生產(chǎn)科技發(fā)展計劃項目

        劉 輝(1985—),男,碩士研究生.

        劉 星(1964—),女,副教授,工學(xué)碩士.E-mail:haphlx@163.com

        猜你喜歡
        正點圖元矢量
        自動替換國家站異常數(shù)據(jù)技術(shù)方法探究
        一種組態(tài)控件技術(shù)在電力監(jiān)控系統(tǒng)中的運用
        矢量三角形法的應(yīng)用
        學(xué)術(shù)出版物插圖的編排要求(一):圖注
        聯(lián)鎖表自動生成軟件的設(shè)計與實現(xiàn)
        正點
        趣味漢字——正點和整點
        基于矢量最優(yōu)估計的穩(wěn)健測向方法
        三角形法則在動態(tài)平衡問題中的應(yīng)用
        基于Qt繪圖系統(tǒng)的圖形應(yīng)用優(yōu)化研究與實現(xiàn)
        軟件(2016年12期)2016-02-13 05:58:14
        日韩在线不卡免费视频| 国产性自爱拍偷在在线播放| 亚洲精品www久久久久久| 日韩av高清无码| 亚洲国产日韩欧美高清片a| 人妻被公上司喝醉在线中文字幕| 色偷偷色噜噜狠狠网站30根 | 虎白m粉嫩小在线播放| 东北老女人高潮大喊舒服死了| 国产成人免费a在线视频| 日韩一区二区三区中文字幕| 精品免费福利视频| 国产一区二区三区亚洲精品| 男奸女永久免费视频网站| 无码人妻人妻经典| 国产精品开放小视频| 亚洲一区二区三区99区| 国产午夜亚洲精品国产成人av | 中文字幕一区二区人妻秘书| 亚洲精品久久久久中文字幕一福利| 色综合久久丁香婷婷| 免费一区二区三区av| 色婷婷av一区二区三区久久| 九九精品国产亚洲av日韩 | 蜜桃网站在线免费观看视频| 精品国产精品三级在线专区| 消息称老熟妇乱视频一区二区| 成人区视频| 中文字幕一区二区在线看| 久久精品夜色噜噜亚洲a∨| 嗯啊哦快使劲呻吟高潮视频| 国产在线观看免费一级| 精品国产亚洲第一区二区三区| 男女做爰猛烈啪啪吃奶动| 亚洲久无码中文字幕热| 日本成年少妇人妻中文字幕| 国色天香社区视频在线| 处破痛哭a√18成年片免费| 亚洲在线一区二区三区四区| 日本一区二区精品高清| 久久夜色精品国产噜噜av|