• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      DXF坐標(biāo)轉(zhuǎn)換的實現(xiàn)

      2017-11-28 08:53:52呂寶奇王瑞芳
      河南科技 2017年19期
      關(guān)鍵詞:平面坐標(biāo)圓心圓弧

      呂寶奇 王瑞芳

      DXF坐標(biāo)轉(zhuǎn)換的實現(xiàn)

      呂寶奇1王瑞芳2

      (1.河南省測繪工程院,河南 鄭州 450003;2.鄭州測繪學(xué)校,河南 鄭州 450015)

      在常用CAD文件處理中,對DXF文件編輯需要安裝AutoCAD軟件。基于此,本文通過研究DXF文件組織結(jié)構(gòu),直接接對DXF文件文本進(jìn)行編輯,在已有坐標(biāo)轉(zhuǎn)換模型下,實現(xiàn)對DXF格式文件坐標(biāo)的轉(zhuǎn)換。

      AutoCAD;DXF;坐標(biāo)轉(zhuǎn)換

      AutoCAD由于其豐富的指令、強(qiáng)大的功能,已被各種工程測量使用,而DXF作為AutoCAD的公開矢量交換格式,分為ASCⅡ和二進(jìn)制兩類。其中,ASCⅡ編碼由于其易于編輯和分析,被廣泛應(yīng)用,成為了一種事實上的標(biāo)準(zhǔn)。因此,掌握DXF格式的解析工作對地理信息程序設(shè)計人員至關(guān)重要。

      測繪工作經(jīng)常會遇到不同坐標(biāo)系下的轉(zhuǎn)換,如1980西安坐標(biāo)系到2000國家大地坐標(biāo)系的轉(zhuǎn)換。作為Auto?CAD的交換格式,DXF相對易于解析,可以不依賴Auto?CAD編輯,被眾多用戶所采用。因此,本文對DXF格式矢量文件坐標(biāo)轉(zhuǎn)換進(jìn)行分析與實現(xiàn)[1-3]。

      1 DXF格式分析

      1.1 基本結(jié)構(gòu)

      從根本上來說,DXF文件可以看作是由組碼和組值組成的矢量文件,組碼指示組值的類型,而組值確定了其值(Value)。為了清晰顯示,DXF文件的每一個組碼和組值都各占一行。每一段開頭為SECTION 0,第二段為組碼2和該段的名稱,中間內(nèi)容為定義各個要素的組碼和組值,最后為表示結(jié)束的ENDSEC O。DXF基本結(jié)構(gòu)如圖1所示。

      圖1 DXF基本結(jié)構(gòu)

      標(biāo)題段(Header)主要用于記錄所有標(biāo)題變量的當(dāng)前狀態(tài)和當(dāng)前值。表段(Table)包括有線型表、圖層表、字體表和視圖表等一系列表。塊段(Blocks)記錄了塊名、塊種類、插入基點及組成塊的成員等。實體段(Entities)記錄了實體的名稱、所在圖層及其名字、線型、顏色[4,5]。

      由于DXF的組織結(jié)構(gòu)非常復(fù)雜,而在坐標(biāo)轉(zhuǎn)換中,常用的要素其實并不是很多,因此,并不需要完整地讀取整個DXF文件,只需要提取部分圖形的實體信息,忽略DXF文件中的大部分?jǐn)?shù)據(jù),獲取實際的層表、塊段和實體段,就可以獲取相應(yīng)圖形的坐標(biāo)信息[6-8]。圖層表中說明每一層的顏色、線型,這些內(nèi)容不需要更改,因此可以直接跳過。

      坐標(biāo)轉(zhuǎn)換常用的基本組碼定義為:

      9:變量名稱標(biāo)志符(僅使用于Header段);

      10、20、30:主要點x、r、。值;

      11~18,21~28,31~37:其他點的z、y、z值;

      40~48:雙精度浮點值(如縮放比例等);

      50:角度。

      1.2 轉(zhuǎn)換分析

      1.2.1 主要CAD要素。在坐標(biāo)轉(zhuǎn)換處理中,部分CAD要素由于其定義相對單一、易懂,可以對其直接修改而無需過多處理。主要為AcDbPohline、AcDbPoint、AcD?bText、AcDline、AcDb2dPolyline、AcDbVector、AcDbSpline、AcDhMText、AcDbCircle等。對于單點只需直接轉(zhuǎn)換,對于直線及多段線,需要對每個頂點逐一轉(zhuǎn)換,對于圓,只需要對其圓心進(jìn)行轉(zhuǎn)換[9]。

      1.2.2 塊要素分析。塊(Blocks)是DXF文件中相當(dāng)重要的一種要素。在實際生產(chǎn)中,塊被用于各種符號、復(fù)雜圖元等構(gòu)建中。塊由于其組織結(jié)構(gòu)具有特殊性,因此,需要專門處理Blocks段中包含的所有塊定義,塊定義不能嵌套包含塊定義[10]。

      標(biāo)志塊本身的字符串為“AcDbBlockBegin”,結(jié)束字符串為“AcDBBlockEnd”。由于同一個塊可由多個塊參照引用,因此,在轉(zhuǎn)換前,應(yīng)先遍歷所有塊要素,獲取其中的塊名和塊偏移值。本文定義一個塊的結(jié)構(gòu)體:

      Private Struct Block

      Public string StrName;

      Public double x;

      Public double y;

      由于塊存儲的是與塊參照(AcDbBlockReference)的相對位置,即塊偏移值,所以直接轉(zhuǎn)換塊的坐標(biāo)或轉(zhuǎn)換相對位置都是不正確的。需要利用獲取的x、y偏移值,x、y縮放因子和旋轉(zhuǎn)角度,求出塊的絕對位置[11]。對絕對位置進(jìn)行轉(zhuǎn)換后,再反向計算修改塊參照的相應(yīng)坐標(biāo)值。其偽代碼為:

      //獲取塊參照的xy值

      GetXY(outxpart,out ypart);

      //獲取塊xy坐標(biāo)值

      GetXY(out x.out y);

      //獲取xy偏移值GetdXdY(out dx,outdy);//獲取塊旋轉(zhuǎn)參數(shù)

      GetAngle(out angle);

      //計算xy臨時變量

      CaculateBlock(angle,dx,dy,x,y,xpart,ypart,outxTemp,outyTemp)

      xTemp=dx*cos(angle)*xpart–dy*sin(angle)*ypart+x;

      yTemp=dx*sin(angle)*xpart+dy*cos(angle)*ypart+y;

      ∥對xy臨時變量進(jìn)行轉(zhuǎn)換

      Transform(ref xTemp,refyTemp)

      //反向計算xy坐標(biāo)

      CaculateBlockResult(angle,dx,dy,x,y,xpart,ypart,xTemp,yTemp,outx,outy)

      x=xTemp-dx*cos(angle)*xpart+dy*sin(an?gle)*ypart;

      y=yTemp-dx*sin(angle)*xpart-dy*cos(an?gle)*ypart;

      1.3 其他圖元處理

      “$EXTMIN”“$EXTAX”存儲DXF文件圖元的邊界,如果直接轉(zhuǎn)換,顯然不正確的。本文采用的方法為統(tǒng)計所有轉(zhuǎn)換后的坐標(biāo)值并比較其大小,再修改原始邊界值。

      在普遍的地理數(shù)據(jù)處理中,一般將圓?。ˋrc)擬合曲線,而不是直接使用。如果要轉(zhuǎn)換圓弧,則先分析其構(gòu)成。組碼10、20、30對應(yīng)圓弧圓心坐標(biāo),40對應(yīng)圓弧半徑長度,50代表圓弧開始角度,51代表圓弧結(jié)束角度。因此,要轉(zhuǎn)換圓弧就不僅要轉(zhuǎn)換圓心坐標(biāo),其半徑角度等都可能改變。可以根據(jù)圓參數(shù)方程計算起點與終點的坐標(biāo),對圓心、起點、終點進(jìn)行轉(zhuǎn)換后,再反求半徑與開始角度和結(jié)束角度。橢圓(Ellipse)的轉(zhuǎn)換原理與其相似。

      DXF轉(zhuǎn)換流程如圖2所示。

      2 轉(zhuǎn)換模型

      2.1 二維四參數(shù)轉(zhuǎn)換

      二維四參數(shù)轉(zhuǎn)換模型通常用于范圍較小的不同高斯投影平面轉(zhuǎn)換、相對獨立的平面坐標(biāo)系統(tǒng)與2000國家大地坐標(biāo)系的聯(lián)系,包括兩個平移參數(shù)、一個旋轉(zhuǎn)參數(shù)和一個尺度比參數(shù),因為DXF坐標(biāo)為平面坐標(biāo),所以可以直接使用二維四參數(shù)轉(zhuǎn)換模型進(jìn)行轉(zhuǎn)換。

      2.2 二維七參數(shù)轉(zhuǎn)換

      二維七參數(shù)轉(zhuǎn)換模型通常用于不同地球橢球基準(zhǔn)下的橢球面上的點位坐標(biāo)轉(zhuǎn)換,包括三個平移參數(shù)、三個旋轉(zhuǎn)參數(shù)和一個尺度比參數(shù)。因為DXF坐標(biāo)為平面坐標(biāo),而二維七參數(shù)輸入坐標(biāo)為經(jīng)緯度坐標(biāo),因此,需要先將DXF中的坐標(biāo)經(jīng)過高斯投影變換得到經(jīng)緯度坐標(biāo),對其進(jìn)行二維七參數(shù)轉(zhuǎn)換,然后再對其進(jìn)行高斯投影變換得到平面坐標(biāo)。

      圖2 DXF轉(zhuǎn)換流程

      3 改進(jìn)及展望

      3.1 改進(jìn)

      以往對圓弧進(jìn)行處理時,如果兩個坐標(biāo)系存在較為復(fù)雜的轉(zhuǎn)換關(guān)系,圓弧變換之后可能不再是圓弧,因此,可以不對圓心直接進(jìn)行轉(zhuǎn)換,而通過起點、終點和圓心對應(yīng)的相似關(guān)系進(jìn)行相似變換求解圓心,這樣可以保證圓弧的形狀與轉(zhuǎn)換之前保持一致。

      在坐標(biāo)轉(zhuǎn)換中,主要計算工作為矩陣運算。由于圖元要素較多,計算速度受到影響,因此,可以采用多種方法加速計算:一是可以采用SIMD指令執(zhí)行并行計算,提高CPU利用率,加速矩陣運算:二是可以采用CPU加速,利用顯卡更強(qiáng)的并行計算能力提高運算速度;三是可以利用四元數(shù)代替矩陣計算轉(zhuǎn)換中的旋轉(zhuǎn)部分,降低列內(nèi)存的需求。

      3.2 展望

      DXF作為AutoCAD的交換格式,在矢量數(shù)據(jù)處理中被廣泛應(yīng)用,因此,其坐標(biāo)轉(zhuǎn)換有廣闊的應(yīng)用前景。只有對DXF數(shù)據(jù)格式進(jìn)行研究,并對坐標(biāo)轉(zhuǎn)換原理有了一定的認(rèn)識,才能更好地對其進(jìn)行坐標(biāo)轉(zhuǎn)換處理。雖然其處理效率還有待提高,但如何更精確地實現(xiàn)更復(fù)雜的轉(zhuǎn)換功能,值得我們進(jìn)一步研究與探討。

      [1]中華人民共和國國土資源局部.TD/T 1001-2012地籍調(diào)查規(guī)程[S].北京:中國標(biāo)準(zhǔn)出版社,2012.

      [2]劉經(jīng)南.基準(zhǔn)統(tǒng)的建立和變換[M].武漢:武漢大學(xué)出版社,1995.

      [3]杜向鋒,張興福,張永毅等.CORS測量成果轉(zhuǎn)換的一步法及其精度分析[J].測繪通報,2015(7):23-26.

      [4]周忠謨,易杰軍,周琪.GPS衛(wèi)星測量原理與應(yīng)用[M].武漢:測繪出版社,1999.

      [5]中華人民共和國住房和城鄉(xiāng)建設(shè)部.GB 50026—2007.工程測量規(guī)范[S].北京:中國計劃出版社,2008.

      [6]魏子卿.我國大地坐標(biāo)系的換帶問題[J].武漢大學(xué)學(xué)報(信息科學(xué)版),2003(2):138-143.

      [7]陳俊勇.中國現(xiàn)代大地基準(zhǔn)——中國大地坐標(biāo)系統(tǒng)2000(CGCS2000)及其框架[J].測繪學(xué)報,2008(3):260-271.

      [8]何林,柳林濤,許超鈐,等.常見平面坐標(biāo)系之間相互轉(zhuǎn)換的方法研究[J].測繪通報,2014(9):6-11.

      [9]楊國清.控制測量學(xué)[M]鄭州:黃河水利出版社,2010.

      [10]孔祥元,梅是義.控制測量(下冊)[M].武漢:武漢出版社,2006.

      [11]歐朝龍,黃夢龍.地方坐標(biāo)到2000國家大地坐標(biāo)轉(zhuǎn)換方法研究[J].測繪通報,2010(9):26-28.

      Research and Realization of Coordinate Transformation base on DXF

      Lv Baoqi1Wang Ruifang2
      (1.Henan Engineering Institute of Surveying and Mapping,Zhengzhou Henan 450002;2.Zhengzhou School for Surveying and Mapping,Zhengzhou Henan 450015)

      In common CAD file processing,the DXF file editor needs to be installed with AutoCAD soft?ware.Based on this,this paper studied the organization structure of DXF file,and directly edited the text of DXF file,and realized the conversion of DXF format file coordinates under the existing coordinate con?version model.

      AutoCAD;DXF;coordinate system conversion

      P283

      A

      1003-5168(2017)10-0036-03

      2017-09-01

      呂寶奇(1981-),男,工程師,研究方向:計算機(jī)輔助制圖與數(shù)字城市平臺建設(shè)。

      猜你喜歡
      平面坐標(biāo)圓心圓弧
      不動產(chǎn)測量平面坐標(biāo)轉(zhuǎn)換與精度分析
      二次曲線的一個類似圓心的性質(zhì)
      奧維互動地圖CAD中線坐標(biāo)精度分析
      人民交通(2022年5期)2022-06-16 07:25:12
      淺析圓弧段高大模板支撐體系設(shè)計與應(yīng)用
      復(fù)變函數(shù)斜軸橢球變換法的銜接應(yīng)用
      測繪工程(2021年5期)2021-09-13 09:01:38
      外圓弧面銑削刀具
      以圓周上一點為圓心作圓的圖的性質(zhì)及應(yīng)用
      數(shù)控車削圓弧螺紋程序編制與加工
      等截面圓弧無鉸板拱技術(shù)狀況評價
      長大連續(xù)梁上CPIII控制點實時坐標(biāo)計算方法研究*
      安阳县| 醴陵市| 舞钢市| 邛崃市| 阜康市| 无极县| 五寨县| 宁化县| 吴江市| 进贤县| 瓦房店市| 绥化市| 甘南县| 通化县| 余干县| 明光市| 广德县| 垦利县| 庆安县| 柯坪县| 文安县| 仪征市| 柏乡县| 安吉县| 合肥市| 浏阳市| 建平县| 仙游县| 赣榆县| 河南省| 河津市| 成安县| 成都市| 方正县| 榆中县| 巨野县| 育儿| 芮城县| 东乡族自治县| 屯留县| 房产|