ra.Computers&Graphics, vol.21, n0.1, pp.23-30 ;Ogayar, C.J., Segura, R.J., Feito, F.R.(2005).Point in Solid Strategy.Computers&Graphics, vol.29, n0.4, pp.616-624 ;Cui,S.L., Zhang, S.Q., Chen, X.X, Pang, Z.P., Fu, X.Y., Zhang, X.(2011).Po int-1n-Po lyhedraTest with Direct Handling of Degeneracies.Geo-spatial Informat1nScience, vol.14, n0.2, pp.91-97 ;王文成,吳恩華.(2000).判斷檢測點是否在多邊形或多面體內(nèi)的新方法[J].軟件學報,11(12):1614-1619 ;吳堅,鄭康平,王小椿.(2003).—種檢測點是否在多邊形或多面體內(nèi)的方法[J].小型微機計算機系統(tǒng),24(12):2200-2203.)
[0036]針對如上這樣具備盲目性的三維外輪廓提取,尤其是見于三維地籍管理中基于離散面片拓撲自動構(gòu)造3維實體的研宄中。在其中,這樣的三維外輪廓稱“最大最小體”,目前都是采用如上提出的“事先盲目搜索,事后剔除”的手段(郭仁忠,應(yīng)申,李霖.(2012).基于面片集合的三維地籍產(chǎn)權(quán)體的拓撲自動構(gòu)建[J].測繪學報,41 (4):620-626 ;李霖,趙志剛,郭仁忠,賀彪.(2012).空間體對象間三維拓撲構(gòu)建研宄[J].武漢大學學報(信息科學版),37(6):719-723 ;Ying, S.,Guo, R.Z.,Li, L.,vanOosterom, P., Ledoux, H., Stoter, J.(2011).Design and Development of a 3D CadastralSystem Prototype based on the LADM and 3D Topology.2nd Internat1nal Workshopon 3D Cadastres, Delft, the Netherlands, pp.167-188.)或‘‘Maximal MinimumSolid,,(Ying, S., Guo, R.Z., Li, L., van Oosterom, P., Stoter, J.(2014).Construct1nof 3D Volumetric Objects for a 3D Cadastral System, Transact1ns in GIS, 22p ;Guo, R.Z., Li, L., Ying, S., Luo, P., He, B., Jiang, R.R.(2012).Developing a 3D Cadastrefor the Administrat1n of Urban Land Use:A Case Study of Shenzhen, China.Computers, Environment and Urban Systems, pp.1-10.)。
[0037]因此,本技術(shù)領(lǐng)域亟待實際有效的解決方案出現(xiàn)。
【發(fā)明內(nèi)容】
[0038]針對現(xiàn)有技術(shù)缺陷,本發(fā)明闡述了一種三維外輪廓的拓撲自動構(gòu)建方法。
[0039]本發(fā)明技術(shù)方案提供一種基于深度優(yōu)先策略的地理空間三維外輪廓自動構(gòu)建方法,首先根據(jù)連通性找到多個連通分支,然后找到其中具備極值頂點的連通分支,該連通分支包含了三維外輪廓,之后找到具備極值頂點的最外圍的面片,接著從最外圍面片出發(fā)采用深度優(yōu)先遍歷依次找到構(gòu)成三維外輪廓包含的所有平面片,實現(xiàn)方式包括以下步驟,
[0040]步驟1,根據(jù)連通性找到原始給定平面片集合中存在的多個連通分支;
[0041]步驟2,確定每個連通分支包含的平面片集合,每個平面片集合中的平面片之間通過邊相互鄰接;
[0042]步驟3,針對每個連通分支,獲取每個連通分支的最小外接盒;計算該最小外接盒的最大極值,簡稱“分支最大極值”;
[0043]步驟4,比較所有的“分支最大極值”,獲得具備最大“分支最大極值”的那個連通分支,確定該連通分支為后續(xù)操作對象,且以上極值簡稱為“最大極值”;
[0044]步驟5,創(chuàng)建一個結(jié)果平面片,內(nèi)容為空;
[0045]步驟6,創(chuàng)建一個相接平面片集合,內(nèi)容為空;
[0046]步驟7,將步驟4所確定連通分支相應(yīng)平面片集合作為當前的給定平面片集合,針對給定平面片集合中的每個平面片的每個頂點,比較頂點的極值與“最大極值”,若存在有一個或者一個以上頂點等于“最大極值”的平面片,則將該平面片加入以上相接平面片集合中;
[0047]步驟8,針對給定平面片集合,如果存在所有頂點的極值等于“最大極值”的平面片,將該平面片標記為平行平面片,并轉(zhuǎn)入步驟9 ;如果不存在,則轉(zhuǎn)入步驟10 ;
[0048]步驟9,比較平行平面片的法向量與三維矢量(0,0,1)的夾角大小,進行以下處理并轉(zhuǎn)入步驟12,
[0049]若兩者夾角為0,則將該平面片標記為結(jié)果平面片,且結(jié)果平面片的方向為I ;
[0050]若兩者夾角為180,則將該平面片標記為結(jié)果平面片,且結(jié)果平面片的方向為2 ;
[0051]步驟10,針對相接平面片集合中的每個平面片,計算法向量與三維矢量(0,0,I)的夾角,該夾角記為“原始夾角”,進行如下處理計算“處理夾角”,然后進入步驟11,
[0052]若原始夾角處于(0,90),則不處理,原始夾角即“處理夾角”;
[0053]若原始夾角處于(90,180),則將180減去原始夾角,結(jié)果標記為“處理夾角”;
[0054]步驟11,從相接平面片集合中的所有平面片中,選擇“處理夾角”最小的平面片,將該平面片標記為結(jié)果平面片;同時,根據(jù)結(jié)果平面片的“原始夾角”進行如下處理計算結(jié)果平面片的方向,
[0055]若原始夾角處于(0,90),則結(jié)果平面片的方向為I ;
[0056]若原始夾角處于(90,180),則結(jié)果平面片的方向為2 ;
[0057]步驟12,搜索結(jié)束,結(jié)果平面片為外輪廓體邊界上的一個平面片,返回結(jié)果平面片;
[0058]步驟13,創(chuàng)建外輪廓體,內(nèi)容為空;
[0059]步驟14,創(chuàng)建當前平面片,采用結(jié)果平面片初始化;
[0060]步驟15,針對當前平面片,讀取此時當前平面片的方向,將該平面片以及此時的方向加入外輪廓體中,同時對該平面片此時方向?qū)?yīng)的側(cè)面作如下處理進行標記,
[0061]若此時當前平面片的方向為1,則該平面片的背面標記“已使用”;
[0062]若此時當前平面片的方向為2,則該平面片的正面標記“已使用”;
[0063]步驟16,針對當前平面片,創(chuàng)建推進平面片,初始化內(nèi)容為空;
[0064]步驟17,從當前平面片包含的所有邊中取一條邊,計算最鄰近平面片及相應(yīng)方向;
[0065]步驟18,針對步驟17所得最鄰近平面片及方向分別進行判斷,若最鄰近平面片及方向在當前的外輪廓體中不存在,則將相應(yīng)最鄰近平面片加入以上推進平面片,若存在則從當前平面片包含的所有邊中依次取下一條邊,返回執(zhí)行步驟17確定最鄰近平面片及相應(yīng)方向,直到對當前平面片包含的所有邊處理完畢,進入步驟19 ;
[0066]步驟19,清空當前平面片,將推進平面片作為新的當前平面片;之后,清空推進平面片;
[0067]步驟20,基于新的當前平面片返回步驟15,直至得到的推進平面片為空,三維外輪廓搜索完畢。
[0068]而且,步驟17中,對某條邊計算最鄰近平面片及相應(yīng)方向?qū)崿F(xiàn)方式如下,
[0069]首先,設(shè)與該邊鄰接的且同樣用于構(gòu)成外輪廓體的平面片,稱為最鄰近平面片;與該邊相接的所有平面片形成一個集合,稱為相接平面片束,最鄰近平面片總是存在于相接平面片束中;計算最鄰近平面片如下,
[0070]若當前平面片的方向為1,則在相接平面片束中,順著當前平面片的正面望去,尋找與當前平面片沿著以上邊夾角最小的那個平面片,此時該平面片是最鄰近平面片;
[0071]若當前平面片的方向為2,則在相接平面片束中,順著當前平面片的正面望去,尋找與當前平面片沿著以上邊夾角最大的那個平面片,此時該平面片是最鄰近平面片;
[0072]然后,計算最鄰近平面片的方向,若最鄰近平面片與當前平面片相容,則對最鄰近平面片賦予與當前平面片一樣的方向;若最鄰近平面片與當前平面片不相容,則對最鄰近平面片賦予與當前平面片不同的方向。
[0073]而且,所述極值為最大Z值、最小Z值、最大X值、最小X值、最大Y值或最小Y值。
[0074]本發(fā)明在現(xiàn)有研宄基礎(chǔ)上進一步發(fā)展,采用的數(shù)據(jù)模型基于“面向地籍的三維空間數(shù)據(jù)模型”,研宄的主要內(nèi)容是如何事先主動地拓撲自動構(gòu)建這樣的三維外輪廓,而并非如現(xiàn)有技術(shù)事先盲目搜索之后再剔除,本發(fā)明提出的方法有效避免了搜索的盲目性。同時,本發(fā)明所述的三維外輪廓的拓撲自動構(gòu)建方法,能夠支持從具備多個連通分支或具備穿洞情況或具備內(nèi)穴情況的面片集合中有效地搜索出三維外輪廓,且保證結(jié)果的正確性。本發(fā)明所述方法可以廣泛應(yīng)用于三維建筑集群/三維房產(chǎn)集群的外輪廓識別中。
【附圖說明】
[0075]圖1為本發(fā)明實施例圖形外輪廓的拓撲等價性示意圖,其中圖1(a)為2D圖形外輪廓的拓撲等價性示意圖,圖1(b)為3D圖形外輪廓的拓撲等價性示意圖。
[0076]圖2為本發(fā)明實施例平面片夾角的轉(zhuǎn)化處理示意圖,其中圖2(a)為嵌入于三維空間中的平面片集合示意圖,圖2 (b)為垂直于XOY的平面片集合示意圖,圖2 (c)是簡化為直線段集合的示意圖。
[0077]圖3為本發(fā)明實施例針對帶內(nèi)穴的簡單案例找三維外輪廓示意圖。
[0078]圖4為針對帶穿洞的簡單案例找三維外輪廓示意圖。
[0079]圖5為本發(fā)明實施例中由5X5X6個平面片構(gòu)成的3維外輪廓(展開2維圖形方式)示意圖。
[0080]圖6為圖5所示外輪廓給予深度優(yōu)先遍歷得到的12個條帶(展開2維圖形方式)
示意圖。
[0081]圖7為圖5所示外輪廓給予深度優(yōu)先遍歷得到的12個條帶中第1,2,3,10,11,12個條帶(多叉樹形式)示意圖。
[0082]圖8為圖5所示外輪廓給予深度優(yōu)先遍歷得到的12個條帶中第4,5,6,7,8,9個條帶(多叉樹形式)示意圖。
[0083]圖9為本發(fā)明實施例中由4X4X6個平面片構(gòu)成的3維外輪廓(展開2維圖形方式)示意圖。
[0084]圖10為圖9所示外輪廓給予深度優(yōu)先遍歷得到的9個條帶(展開2維圖形方式)
示意圖。
[0085]圖11為圖9所示外輪廓給予深度優(yōu)先遍歷得到的9個條帶中第1,2,3,4,5個條帶(多叉樹形式)示意圖。
[0086]圖12為圖9所示外輪廓給予深度優(yōu)先遍歷得到的9個條帶中第6,7,8,9個條帶(多叉樹形式)示意圖。
[0087]圖13為本發(fā)明實施例中由3X3X6個平面片構(gòu)成的3維外輪廓(展開2維圖形方式)示意圖。
[0088]圖14為圖13所示外輪廓給予深度優(yōu)先遍歷得到的7個條帶(展開2維圖形方式)示意圖。
[0089]圖15為圖13所示外輪廓給予深度優(yōu)先遍歷得到的7個條帶(多叉樹形式)示意圖。
[0090]圖16為本發(fā)明實施例中由2X2X6個平面片構(gòu)成的3維外輪廓(展開2維圖形方式)示意圖。
[0091]圖17為圖16所示外輪廓給予深度優(yōu)先遍歷得到的3個條帶(展開2維圖形方式)示意圖。
[0092]圖18為圖16所示外輪廓給予深度優(yōu)先遍歷得到的3個條帶(多叉樹形式)示意圖。
[0093]圖19為本發(fā)明實施例中由1X1X6個平面片構(gòu)成的3維外輪廓(展開2維圖形方式)示意圖。
[0094]圖20為圖19所示外輪廓給予深度優(yōu)先遍歷得到的I個條帶(展開2維圖形方式)示意圖。
[0095]圖21為圖19所示外輪廓給予深度優(yōu)先遍歷得到的I個條帶(多叉樹形式)示意圖。
【具體實施方式】
[0096]本發(fā)明闡述了一種三維外輪廓的拓撲自動構(gòu)建方法。通過這種方法找到的三維外輪廓中允許有穿洞(through-holes),允許有內(nèi)穴(inner cavity)。
[0097]3維外輪廓的構(gòu)造基元應(yīng)該是緊鄰I個維度的2維基元,如2維平面片;否則,如果3維外輪廓由跨維的I維直線段構(gòu)成,就會產(chǎn)生二義性。就如2維外輪廓的構(gòu)造基元應(yīng)該是緊鄰I個維度的I維基元,如I維直線段;否則,如果2維外輪廓由跨維度的O維點構(gòu)成,就會產(chǎn)生二義性,典型的就如2D alpha型外邊界由O維點集生成,而2D alpha型外邊界就只