?

AutoCAD中過近頂點的自動溶合

2010-11-14 10:52顧有兵
測繪通報 2010年7期
關鍵詞:庫中街坊多邊形

顧有兵

(蚌埠市勘測設計研究院,安徽蚌埠 233000)

AutoCAD中過近頂點的自動溶合

顧有兵

(蚌埠市勘測設計研究院,安徽蚌埠 233000)

在基于AuotoCAD的圖形中,采用多邊形過近頂點的自動溶合方式,可有效地消除多邊形的拓撲問題,提高內業數據處理速度和數據質量。

多邊形;拓撲;自動溶合

一、引 言

在地籍測量中,要求宗地線、圖斑線、房屋線等之間拓撲關系正確,即不能有懸掛點、重疊、交叉等問題存在,利用文獻[1-2]可有效地發現存在的拓撲問題,進而以手工方式逐個進行處理。在文獻[1]中也提到,這種錯誤是人工操作時造成的,一般問題較小。另外,不同的軟件之間相互轉換數據,因取位問題,多邊形之間看似完全重合,但放大之后有極小差異;再就是圖形之間的相互復制,其定位點的微小差異也會引起微小的拓撲問題。盡管這些問題在測量誤差的允許范圍內,但在整個圖形數據中是不允許存在的。雖然這些拓撲問題極小,反不如大的問題容易處理,而且這些微小的拓撲問題可能因系統問題大量存在,盡管采用文獻 [1-2]的方法可以快速發現,但因數量大,處理起來也非常麻煩。如圖 1所示,多邊形A與多邊形B之間存在縫隙,因點 1、2之間的間距極小 (實際編程時可以自由設定),無論是點 1靠近到點 2上,還是點 2靠近到點 1上,或者點 1、點 2靠近到兩點的連線中點上,都可以滿足要求,而不需人工輔助判斷,這就為自動處理提供了可能。

圖1 拓撲問題示例

二、頂點自動溶合的目的

頂點的自動溶合是將在設定范圍內的若干個頂點溶合為一個頂點,從而消除多邊形的拓撲錯誤。如圖 2所示,多邊形 A、B、C、D在頂點A3、B4、D1、C2處存在微小的拓撲錯誤,頂點的自動溶合即是將頂點 A3、B4、D1、C2自動溶合為相同坐標值的點,從而消除多邊形之間的微小拓撲錯誤。

圖2 多邊形之間的微小拓撲錯誤

三、AutoCAD中多邊形的分析

在AutoCAD中多邊形均是由若干個頂點構成,多邊形的形狀、位置等則是由頂點的坐標值確定。如圖 2所示,多邊形A由頂點A1、A2、A3、A4構成;多邊形B由頂點B1、B2、B3、B4構成;多邊形 C由頂點C1、C2、C3、C4構成;多邊形 D由頂點 D1、D2、D3、D4構成。多邊形之間的關系只是位置上的關系,這種關系隱含在頂點坐標值中,需要通過坐標分析來獲得,而不是記錄在多邊形或圖形的某種屬性中,并可以直接讀取。如點 A2和點 B1位置相同,這種位置相同只有通過坐標分析才可以計算得到,而在圖形或多邊形某個屬性中沒有記錄。所以在AutoCAD中分析或處理多邊形必須從分析或處理頂點坐標開始。

四、頂點自動溶合的方案設計

通過AutoCAD多邊形的分析可知,預分析或處理多邊形需從頂點坐標開始,頂點自動溶合的具體方案流程如下:

1)設定自動溶合的限差,即距離小于多少的頂點才會相互溶合。

2)生成預留頂點坐標庫。逐個處理多邊形,分析多邊形的每一個頂點,如果當前頂點與頂點庫中所有頂點的最小距離大于設限差,則將當前頂點加入到頂點庫中去,否則不加入,最后形成需保留頂點的頂點庫。如圖 2所示,假設處理多邊形的順序是按照A、B、C、D進行的,分析各頂點也是按照 1、2、3、4順序進行的。處理多邊形 A時,首先分析頂點A1,因頂點庫中當前為空,則頂點 A1加入到頂點庫中去,分析點 A2時,與頂點庫中最小距離為和點A1的距離,大于限差,加入頂點庫,A3、A4也會加入頂點庫。處理多邊形B時,分析頂點 B1,因 B1與頂點庫中最小距離(和A2的距離)為 0,所以頂點B1被忽略,沒有加入頂點庫。設點B4、D1、C2與點A3距離均小于限差,則都不加入頂點庫,最后加入頂點庫中所有的頂點為A1、A2、A3、A4、B2、B3、D3、D4、C2。

3)頂點的溶合處理。頂點庫生成后再次逐個處理多邊形,對多個頂點進行分析處理。如果當前頂點與頂點庫中點的最小距離不為 0,則用最小距離對應的點替換當前頂點坐標,相當于把當前頂點移動到距離頂點庫中距離最小的頂點上。如圖 2所示,仍然假設處理多邊形的順序是按照A、B、C、D進行的,分析各頂點也是按照 1、2、3、4順序進行的。處理多邊形A時,首先分析頂點 A1,頂點 A1在頂點庫中存在,則頂點A1距離頂點庫中距離所有點的最小距離為 0,不用調整,保持原位置不動,頂點 A2、A3、A4相同。處理多邊形 B時,點 B1、B2、B3距離頂點庫中距離所有點的最小距離均為 0,不作調整,分析頂點B4時,因點B4沒有加入到頂點庫,且和頂點庫所有點的最小距離為和 A3的距離,不為 0,則將B4移動到點 A3上。逐個多邊形逐頂點進行分析處理,頂點D1、C2會移動到點 A3上,其他頂點位置不會調整。

4)優先圖層的設置。在頂點的自動溶合處理過程中,如前所述,各多邊形處理順序是無法預知的,處理的順序不同,則選擇的頂點庫中頂點就不同,處理的結果就不同,在大批量數據處理中人為設置順序的可能性也不大,盡管這種自動處理的限差設置會很小,對測量誤差來說毫無意義,但對于拓撲處理來說會存在問題。如在地籍圖中,假設街坊的邊界已經設定,則在處理街坊線和宗地線時,街坊界是不能被調整的,即使和宗地邊界有微小縫隙,只能調整宗地界線。為此,在頂點庫構建時,設置一優先圖層。首先處理優先圖層中的多邊形,再處理其他圖層上的多邊形,則位置調整時,參照點優先是使用了優先圖層上的頂點,確保其他圖層上的點向優先圖層上的點靠近。在實際處理問題時,首先將街坊界進行獨立自動處理,確保街坊界拓撲沒有問題,再將街坊和宗地界聯合處理,將街坊界設為優先圖層,則街坊和宗地之間有微小拓撲問題時,是宗地界線靠近到街坊界線上。以此逐級處理宗地與圖斑、圖斑與房屋等。

五、頂點自動溶合的程序設計

通過以上的分析,采用 Visual Studio 2008中VB.net語言基于 AutoCAD 2008進行程序設計,程序的主要語句如下:

六、結束語

1)使用以上設計的程序對圖 2進行頂點溶合處理,未設置優先圖層,結果如圖 3所示。設置多邊形B所在圖層為優先圖層,其他多邊形不在優先圖層上,處理結果如圖 4所示。通過優先圖層的設置,可確保處理結果按設定目標處理,達到處理結果的可控性。

2)因為頂點位置的自動調整,為不影響圖形本身的數學精度,所以限值設定一般小于 0.001 m,確保不影響測量成果精度。

3)頂點自動溶合不僅用于圖形微小拓撲錯誤的自動處理,還可用于多邊形邊長的濾波處理,自動刪除多邊形過短邊長,減小數據量。如圖 5、圖 6所示。

圖 3 多邊形頂點自動溶合結果(無優先圖層)

圖 4 多邊形頂點自動溶合結果(B為優先圖層)

圖5 多邊形濾波前情況

圖6 多邊形濾波后情況

[1] 陳重奎,李乃良.基于 AutoCAD的多邊形間的間隙核查[J].測繪通報,2009(8):44-46.

[2] 陳重奎,李乃良.AutoCAD中利用區域計算實現多邊形的重疊與空洞檢查 [J].城市勘測,2009(4): 117-119.

[3] STEVEN J,牛力,等.Visual Basic 6編程寶典[M].北京:電子工業出版社,2004.

Automatic Gathering of Polygon Apexes in AutoCAD

GU Youbing

0494-0911(2010)07-0062-03

P271

B

2010-02-22;

2010-06-06

顧有兵(1957—),男,安徽蚌埠人,高級工程師,主要研究方向為工程測量。

猜你喜歡
庫中街坊多邊形
多邊形中的“一個角”問題
街頭的人
以街坊為單元的老城區微更新方法研究
——以柏林Kreuzberg 地區為例
多邊形的藝術
解多邊形題的轉化思想
唐朝城市街坊布局規劃
多邊形的鑲嵌
百萬莊小區街坊調研及街區改造設計
從今天開始
智能盤庫在自動化立體庫中的探索和應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合