999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

復雜多邊形快速融合算法與實現

2016-12-26 08:21:25劉學軍
地理空間信息 2016年3期
關鍵詞:融合實驗

楊 洋,劉學軍,肖 斐

(1. 61175部隊,江蘇 南京 210049;2. 南京師范大學,江蘇 南京 210046;3. 香港理工大學,香港 999077)

復雜多邊形快速融合算法與實現

楊 洋1,劉學軍2,肖 斐3

(1. 61175部隊,江蘇 南京 210049;2. 南京師范大學,江蘇 南京 210046;3. 香港理工大學,香港 999077)

空間矢量數據結構復雜且信息豐富,復雜多邊形作為矢量數據的重要組成部分,可由多個外環鏈和內環鏈組合而成,復雜的拓撲關系給相應算法的實現帶來了極大困難。多邊形快速融合作為GIS的基本功能,需要快速實現對任意、多個、復雜多邊形的融合處理。根據多邊形重心進行行列劃分,利用排斥實驗和多線程技術,實現了對任意多個復雜多邊形的快速合并。算法已在生產實踐中得到應用。

復雜多邊形;快速融合;多線程;排斥實驗

實現對任意多個復雜多邊形的快速融合對計算機輔助制圖、GIS矢量計算、計算機輔助設計等領域具有重要意義[1]。然而,現有軟件和算法在解決該問題上仍不夠全面,如傳統多邊形綜合方法主要基于柵格圖像,通過數學形態學方法來合并多邊形[2];大部分GIS軟件只實現了對簡單多邊形的兩兩合并,或多邊形合并必須滿足一定條件(如ArcGIS、MapGIS)。文獻[2]對多邊形進行CDT剖分,通過聚類實現對相接和相鄰多邊形的融合來實現自動制圖綜合,但算法效率和準確度不高,且未考慮屬性約束條件;文獻[3]、[4]只實現了對包含重復邊的左右多邊形的融合,復雜的拓撲構建和限定的適用條件使得算法普適性較差;文獻[5]只實現了對凸多邊形的融合,提出對凹多邊形的融合是將其分解為多個凸多邊形,但當多邊形極度破碎時僅分解凹多邊形就會帶來很大開銷,且沒有考慮更為復雜的情況;文獻[6]提出基于掃描線技術的合并算法,可解決非簡單多邊形和病態多邊形,但算法欠缺對內部多邊形的合并且回路頂點維護復雜。

據此,本文以帶有屬性特征的復雜多邊形作為研究對象,包括凹凸多邊形和含島嵌套多邊形,提出了基于復雜多邊形重心的網格劃分法,并結合排斥實驗、多線程處理來提高對多個復雜多邊形的處理速率,結合計算幾何[7]中的空間矢量求交算法實現了對任意相交或相接的復雜多邊形的快速融合,并已在實際生產中得到大量數據的驗證。

1 算法基礎

1.1 問題描述

復雜多邊形由多個互不相交且屬性相同的外環鏈和內環鏈組成。環鏈根據頂點序列方向的不同進行劃分:逆時針為外環鏈,順時針為內環鏈。復雜多邊形相互融合即各環鏈進行相交計算并重新組合的過程,融合過程中需要解決對頂點序列的維護、對點與環鏈空間關系的判斷、對多邊形進行拓撲重構等問題。

1.2 線段間求交

采用排斥實驗減少求交次數,通過跨立實驗準確判斷相交。如果兩條線段相交則必然相互跨立,則線段P1P2跨立Q1Q2(圖1)的依據為:

兩條線段相交分為8種情況(圖2):a中P1P2、Q1Q2交于A點;b中P1P2新增交點Q1;c中Q1Q2新增交點P2;d中P1P2新增交點Q1、Q2;e中Q1Q2新增交點P1、P2;f和h中無新增交點;g中P1P2新增交點Q1,Q1Q2新增交點。

圖1 快速排斥實驗與跨立實驗[8]

圖2 線段相交的8種情況

1.3 環鏈自相交檢測

環鏈自相交檢測的目的是維護環鏈幾何特征的一致性,是數據預處理的關鍵部分。當組成環鏈的線段除了頂點外還存在其他相交點則認為環鏈自相交(或稱病態多邊形[6]),處理過程為:

1)對組成環鏈的線段進行線段間求交,判斷是否存在新的相交點,若存在則向下執行(圖3a、圖4a、圖5a);不存在則停止處理。

2)按原線段方向對交點進行排序,并分割線段。

3)對分割后的線段集進行閉合環鏈搜索,生成新的環鏈集合(圖3b、圖4b、圖5b)。

4)若新生成環鏈面積小于閾值則舍去。

5)檢測環鏈間的包含關系:當環鏈相嵌套時,保留最外層的環鏈(圖3b舍去L2);當環鏈屬性相同但不嵌套時不進行處理(圖4b保留L1、L2、L3);剔除與原始環鏈屬性不同的新生成的環鏈(圖5b舍去L2、L4)。

1.4 點與環鏈位置關系的判斷

圖3 環鏈內部的自相交

圖4 相連情況下的環鏈自相交

點與任意形狀環鏈的關系可分為外部點、內部點、頂點和邊界點,圖6中描述了由頂點序列組成的外環鏈L與任意點Q的4種位置關系。鑒于射線法的缺陷[10],本文采用角度累加判別法[11],其原理為沿環鏈頂點順序求點Q與頂點構成的方向線的夾角(如QP1到QP2的角度θ1),以逆時針為正,順時針為負,范圍為最后得到角度的和當Q與P中任意一點相等時,Q為頂點;當Q位于L的某一條邊上時加權,Q為邊界點;當L為外環鏈,且ω=360°時,Q為內部點,否則Q為外部點;當L為內環鏈,且ω=-360°時,Q為外部點,否則Q為內部點。

圖6 點與外環鏈的位置關系

1.5 環鏈間相交計算

復雜多邊形的融合可分解成環鏈間的兩兩融合,因此判斷環鏈間位置關系是關鍵。環鏈間位置關系的判斷建立在點與環鏈位置關系判斷的基礎上,通過環鏈最小包圍盒的排斥實驗可以排除一部分相離的環鏈,表1中列出了兩條環鏈可能的位置關系、判斷條件和融合結果。

1.6 多邊形間融合

表1 環鏈間位置關系的判斷

多邊形融合的步驟為:①對環鏈進行兩兩相交,新生成的相交點對原環鏈進行打斷(圖7a);②判斷環鏈A與環鏈B的位置關系,生成融合結果;③完成對兩個多邊形所有環鏈的融合;④對多邊形自身環鏈進行相交處理,消除重疊部分的環鏈;⑤通過正面積法來確定環鏈間包含關系[12],生成新的多邊形,圖7b為數據進行合并后的結果。

圖7 多個環鏈的合并

2 算法設計

2.1 算法流程

復雜多邊形的融合需要對輸入的初始多邊形進行預處理,如消除重復點、閉合環鏈、環鏈的自相交檢測等,將多邊形對象轉化為本算法所定義的數據結構,再進行多邊形的融合,具體流程如圖8所示。

2.2 數據結構

圖8 算法流程圖

描述復雜多邊形的數據結構包括點結構、線結構和環鏈結構,其數據結構定義如下:

//點結構

Class PointF{

Private:

float x, y;

}

//線結構

Class LineF{

Private:

PointF p1, p2;

float angle;

}

//環鏈結構

Class LinkAttri{

Private:

LinkStyle linkstyle; //內外屬性 值為OutLoop, InnerLoop

Vector

bool crossed; //是否與其他鏈相交

PlyDirection plydirect; //環鏈的走向值為Deasil, AntiClockwise, Exceptional

Corner4Points linkcorner4points; //環鏈包圍盒4 個角點坐標

LinkAttri(){

crossed = false;

}

};

//復雜多邊形結構

Class Polygon{

Private:

int linknum; //環鏈個數

Map

Corner4Points plycorner4points; //多邊形包圍盒4個角點坐標

Vector

PointF geocenter; //多邊形的重心

}

2.3 基于重心的網格劃分

當所需處理的復雜多邊形數量多、結構復雜、分布散亂、破碎度高時,按存儲順序進行多邊形的兩兩融合會導致空間與時間開銷大、處理效率低。已有文獻中采用隊列[13]、建立四叉樹索引[1]等方法來加快數據的處理速度。鑒于復雜多邊形空間形態的多樣性,規則的四叉樹并不合適多邊形的劃分,本文將多邊形的幾何重心點作為劃分對象,計算公式為:

圖9 按多邊形的重心進行行列劃分

3 實驗分析

本算法的實驗平臺為Qt 5.3.0,待處理數據通過文本進行讀取。對比ArcGIS中的合并操作Dissolve和Eliminate,所處理的多邊形都非復雜多邊形,前者可將所選多邊形全部合并成一個,但丟失多邊形屬性,后者在合并中保留屬性,但不能一次合并很多,只能兩兩合并;而MapGIS中只能順次選擇合并2個相鄰區域,且多邊形也非復雜多邊形。本算法在考慮屬性的同時實現了對多個復雜多邊形的快速融合,普適性強。

1)多個簡單多邊形的融合。圖10a中不同顏色代表不同的多邊形,合并后生成的復雜多邊形由2個外環和2個內環構成,如圖10b所示。

圖10 簡單多邊形融合

圖11 多個復雜多邊形融合

4 結 語

本文對多邊形融合算法進行了全面擴展,通過基于重心的網格劃分,實現了對任意多個簡單多邊形、非簡單多邊形、復雜多邊形的快速融合處理,并通過數據預處理解決了環鏈自相交問題。對于多邊形拓撲結構的嚴格定義與維護,保證了其計算結果的正確性與穩定性。

[1] 唐立文,王榮峰,廖學軍.基于四叉樹的海量空間矢量多邊形處理技術[J].裝備指揮技術學院學報,2007,18(3):104-108

[2] 何宇兵.地學制圖綜合中多邊形對象的合并算法研究與應用[D].杭州:浙江大學,2007

[3] 郭仁忠,艾廷華.制圖綜合中建筑物多邊形的合并與化簡[J].武漢測繪科技大學學報,2000,25(1):25-30

[4] 馬麗娜.面向大規模空間數據的空間計算模式研究與實現[D].武漢:中國地質大學,2011

[5] 黃俊華,閆遂軍,朱小龍,等.一種凸多邊形的交、并求解算法[J].桂林工學院學報,2007,27(4):589-592

[6] 葉琳,邱龍輝.多邊形合并的算法研究[J].計算機應用與軟件,2002(8):57-59

[7] 周培德.計算幾何——算法設計與分析[M].北京:清華大學出版社,2011

[8] Schneider P J, Eberl Y D H.計算機圖形學集合工具算法詳解[M].北京:電子工業出版社,2005

[9] 鮑其勝,王慶,何立恒.基于線段操作的多邊形求交算法研究[J].測繪通報,2013(5):35-37

[10] 劉曉婧,趙俊三.判定點與多邊形及簡單多邊形之間的空間關系[J].科技情報開發與經濟,2008,18(28):223-224

[11] 鄒有建,肖龍鑫,陳鼎.判斷某點是否在任意多邊形內兩種算法的比較[J].地礦測繪,2009,25(3):28-30

[12] 彭認燦,陳子澎,劉國輝.快速確定多邊形與多邊形包含關系的一種新方法[J].測繪通報,2006(5):50-52

[13] 姚路,莫國明.地形圖房屋接邊合并算法與實現[J].城市勘測,2005(4):28-31

P208

B

1672-4623(2016)03-0052-04

10.3969/j.issn.1672-4623.2016.03.017

楊洋,碩士,主要研究方向為三維GIS、空間分析算法和地理空間情報。

2015-03-17。

項目來源:國家自然科學基金資助項目(41371421)。

猜你喜歡
融合實驗
記一次有趣的實驗
一次函數“四融合”
微型實驗里看“燃燒”
村企黨建聯建融合共贏
今日農業(2021年19期)2022-01-12 06:16:36
融合菜
從創新出發,與高考數列相遇、融合
寬窄融合便攜箱IPFS500
《融合》
現代出版(2020年3期)2020-06-20 07:10:34
做個怪怪長實驗
NO與NO2相互轉化實驗的改進
主站蜘蛛池模板: 91丝袜乱伦| 尤物国产在线| 二级特黄绝大片免费视频大片| 国产黑丝一区| 欧美日韩午夜| 成人一级免费视频| 色爽网免费视频| 欧美人与动牲交a欧美精品| 亚洲国产精品日韩专区AV| 狼友视频国产精品首页| 欧美区一区| 四虎永久在线精品影院| 亚洲激情区| 亚洲第一黄片大全| 色天天综合久久久久综合片| 99青青青精品视频在线| 欧美日本一区二区三区免费| 狠狠色丁婷婷综合久久| 欧美精品亚洲精品日韩专区| 狠狠色丁婷婷综合久久| 高清码无在线看| 国产精选小视频在线观看| 国产视频入口| 蜜臀av性久久久久蜜臀aⅴ麻豆| 亚洲成A人V欧美综合| 99手机在线视频| 中文字幕亚洲电影| 97国产精品视频自在拍| 老司机午夜精品网站在线观看| 久久婷婷六月| 毛片一区二区在线看| 国产成人免费视频精品一区二区| 最新亚洲人成无码网站欣赏网| 国产人碰人摸人爱免费视频| 国产AV无码专区亚洲精品网站| 91在线精品麻豆欧美在线| 亚洲AV成人一区国产精品| 波多野结衣无码中文字幕在线观看一区二区| 最近最新中文字幕免费的一页| 不卡无码h在线观看| 在线国产毛片| 波多野结衣亚洲一区| 无码在线激情片| 日本高清免费一本在线观看| 欧美成人综合视频| 波多野结衣一级毛片| 亚洲无码熟妇人妻AV在线| 欧美色亚洲| 99在线视频精品| 国产女同自拍视频| 激情亚洲天堂| 五月天香蕉视频国产亚| 色丁丁毛片在线观看| 亚洲AV无码乱码在线观看代蜜桃 | 久久网欧美| 在线观看无码av免费不卡网站| 亚洲精品国产首次亮相| 色哟哟国产成人精品| 波多野结衣久久高清免费| 日韩 欧美 小说 综合网 另类| 日韩成人在线一区二区| 欧美视频在线第一页| 色婷婷成人| 亚洲不卡av中文在线| 日韩黄色大片免费看| 欧美特黄一级大黄录像| 美女被躁出白浆视频播放| h网址在线观看| 国产麻豆福利av在线播放 | 中文字幕资源站| 亚洲美女AV免费一区| 91在线播放免费不卡无毒| 久操线在视频在线观看| 国产十八禁在线观看免费| 免费在线不卡视频| 99中文字幕亚洲一区二区| 久久人搡人人玩人妻精品| 亚洲国产成熟视频在线多多 | 国产69精品久久| 伊人丁香五月天久久综合 | 国产在线自揄拍揄视频网站| 波多野结衣无码视频在线观看|