[發明專利]利用Region類代替AutoCAD面域進行圖形計算的方法有效
| 申請號: | 201410775243.2 | 申請日: | 2014-12-15 |
| 公開(公告)號: | CN104463928B | 公開(公告)日: | 2018-01-05 |
| 發明(設計)人: | 周志軍;陳翰新;向澤君;張平;朱清海;劉遠凱;何德平;潘成軍;謝征海;周召兵;馮永能;劉洪海;王昌翰;張鳳英;楊本廷;朱偉;冉瑞華;廖中林;劉洋河;肖興國;滕德貴;岳仁賓;黃建;潘攀;邱友榮;范華鋒;鄒方猛;秦亞華;田世華;胡一勤;吳昊;覃渝;余亨源;陳劍坤;沈翠;陳小麗;劉小云;劉超;吳秀娟;徐娟 | 申請(專利權)人: | 重慶市勘測院 |
| 主分類號: | G06T11/00 | 分類號: | G06T11/00 |
| 代理公司: | 重慶市前沿專利事務所(普通合伙)50211 | 代理人: | 陳紅 |
| 地址: | 400020 *** | 國省代碼: | 重慶;85 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 利用 region 代替 autocad 進行 圖形 計算 方法 | ||
技術領域
本發明涉及一種AutoCAD圖形計算方法(包括:面積計算、布爾運算等),特別是涉及一種利用Region類代替AutoCAD面域進行圖形計算的方法。
背景技術
AutoCAD面域是使用形成閉合環的對象創建的二維閉合區域,環可以是直線、多段線、圓、圓弧、橢圓、橢圓弧和樣條曲線的組合,組成環的對象必須閉合或通過與其他對象共享端點而形成閉合的區域,可以通過多個環或者端點相連形成環的開曲線來創建面域。面域除了包括封閉的邊界形狀,還包括邊界內部的平面,就像一個沒有厚度的平面。
由于AutoCAD提供的面域構造功能不支持局部未閉合線、自相交線、回頭線,也不直接提供點與面域之間的位置關系判斷功能。日常工程圖紙的繪制難免會出現以上情況,當以上情況給計算結果帶來的影響可以忽略不計時,由于AutoCAD自帶面域構造功能的局限性,將會使得眾多基于AutoCAD面域的圖形計算方法無法高效、順利地完成。
Region類:指示由矩形或由路徑構成的圖形形狀的內部,無法繼承此類。命名空間為System.Drawing。從.NET Framework 2.0開始就有了Region類?;赗egion類可以進行區域與區域之間的交集、并集、差集布爾運算,亦可以直接用來判斷一個點或者一個對象是否在另個區域內部。但是,目前還沒有利用Region類代替AutoCAD面域進行圖形計算的相關報道。
發明內容
本發明旨在至少解決現有技術中存在的技術問題,特別創新地提出了一種利用Region類在AutoCAD中代替AutoCAD自帶面域進行相關圖形計算的方法。
為了實現本發明的上述目的,本發明提供的一種利用Region類代替AutoCAD面域進行圖形計算的方法,包括以下步驟:
S1,獲取AutoCAD線圖形對象,并對線圖形對象重采樣,以坐標點集P的方式表達所述線圖形對象;
S2,組建面域構造函數,將步驟S1重采樣得到的點集P輸入面域構造函數,完成Region類面域的構造;
S3,基于Region類面域實現相關圖形計算方法。
在本發明的一種優選實施方式中,所述步驟S1具體包括以下步驟:
S21,定義類型為AcadEntity的圖形對象obj,定義類型為AcadSelectionSet的選擇集Sset;
S22,通過AcadSelectionSet.SelectOnScreen()方法在AutoCAD繪圖區域選擇對象,通過對Sset選擇集遍歷查找,逐一讀取選擇集里的圖形對象:
S23,如果obj(i).objectName為“AcDbPolyLine”,則通過obj(i).Coordinates方法逐一讀取多段線的節點坐標構建點集P;
如果obj(i).objectName為曲線,包括AcDbCircle、AcDbARC、AcDbELLIPSE及AcDbSPLINE,則通過調用AutoCAD內置命令“_divide”對所述曲線對象進行曲線分割處理,分割處理完成后各曲線對象形成了一系列有序的點隊列,點隊列里的點的類型為AcadPoint,通過AcadPoint.Coordinates方法逐一讀取點隊列里的坐標值構建點集P。
在本發明的一種優選實施方式中,所述面域函數的構造方法包括以下步驟:
S31,定義類型為PointF()的點集P,給點集P賦值;
S32,定義類型為GraphicsPath的多邊形Grphs,調用GraphicsPath的AddPolygon方法生成Grphs;
S33,初始化面域Region(),輸入多邊形Grphs,完成面域的構造。
在本發明的一種優選實施方式中,所述有關面域的圖形計算包括面積計算、布爾運算及點與面域的位置關系判斷。
在本發明的一種優選實施方式中,所述面積計算的方法為:通過面域的Region.GetRegionScans方法對Region面域進行矩陣變換,分解成多個小矩形的集合,最后通過各小矩形的面積累加得到面域的面積;
其中,在進行矩陣變換時,GetRegionScans方法在處理邊界數據時視為整型對待,因此處理結果會損失精度,為了保證面積計算的準確性,在構造面域時,將點集P的值放大N倍,最后將計算結果縮小N*N倍,所述N為正整數。
在本發明的一種優選實施方式中,所述N=10000。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于重慶市勘測院,未經重慶市勘測院許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410775243.2/2.html,轉載請聲明來源鉆瓜專利網。





