亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于ArcEngine的管線碰撞分析算法設(shè)計(jì)與實(shí)現(xiàn)

        2014-06-26 07:41:18廉光偉寇付友翟林趙虎川
        城市勘測(cè) 2014年6期
        關(guān)鍵詞:碰撞檢測(cè)共線平行

        廉光偉 ,寇付友,翟林,趙虎川

        (天津市測(cè)繪院,天津 300381)

        1 引 言

        隨著城市的現(xiàn)代化進(jìn)程不斷加快,城市地下管網(wǎng)變得越來(lái)越復(fù)雜,與人們的生活也越來(lái)越密切,由于深埋于地下,且種類繁多,規(guī)模龐大,再加上經(jīng)常施工引發(fā)的變動(dòng)、記載資料不全等原因,城市地下管線具有隱蔽性、復(fù)雜性和多變性等特性,使得設(shè)計(jì)新的地下管線和維護(hù)現(xiàn)有管線比較困難。本文提出基于ArcEngine的管線碰撞分析算法為解決地下管網(wǎng)規(guī)劃設(shè)計(jì)和管線外業(yè)測(cè)量提供了技術(shù)保障。

        2 國(guó)內(nèi)外研究現(xiàn)狀

        近20 多年來(lái),國(guó)內(nèi)外的研究人員在碰撞檢測(cè)領(lǐng)域中做了很多的工作,取了一定的成果,提出了一些較成熟的算法,并開發(fā)了相應(yīng)的程序。碰撞分析算法總體上可以歸為兩類:①靜態(tài)碰撞檢測(cè)算法。主要用于檢測(cè)靜止?fàn)顟B(tài)中各物體之間是否發(fā)生碰撞,如管線碰撞檢測(cè),這類算法的實(shí)時(shí)性要求不高,但對(duì)精度要求較高。②動(dòng)態(tài)碰撞檢測(cè)算法。針對(duì)的是場(chǎng)景中物體的相對(duì)位置隨相間不斷變化的情況,如機(jī)械零件的加工過程以及機(jī)械系統(tǒng)的運(yùn)動(dòng)仿真等[1]。本文主要闡述靜態(tài)碰撞檢測(cè)算法的研究現(xiàn)狀。

        Palmer、Hubbard[7]等提出基于層次包圍盒法的碰撞檢測(cè)算法,其目標(biāo)盡可能地減少需進(jìn)行相交測(cè)試的幾何對(duì)象的數(shù)目及提高算法的實(shí)時(shí)性。碰撞檢測(cè)領(lǐng)域研究最多的包圍盒有:包圍球,沿坐標(biāo)軸的軸向包圍盒,方向包圍盒,固定方向凸包等。

        基于空間分割的碰撞檢測(cè)方法是將整個(gè)虛擬空間劃分成等體積的規(guī)則單元格,依此將場(chǎng)景中物體分割成更小的群組,并只對(duì)占據(jù)了同一單元格或者相鄰單元格的幾何對(duì)象進(jìn)行相交測(cè)試[3]。

        張著豪[5]等提出基于矢量積的管線碰撞分析算法,該算法通過兩管線段的起始點(diǎn)坐標(biāo)建立矢量積,計(jì)算矢量積的值進(jìn)而判斷兩管線是否相交。

        3 管線碰撞分析算法

        GIS 中管線是以二維圖形信息和屬性信息的數(shù)據(jù)結(jié)構(gòu)方式存儲(chǔ),本文分析了管線的碰撞的可能情況,然后根據(jù)不同的情況,結(jié)合圖形數(shù)據(jù)和屬性數(shù)據(jù)給出相應(yīng)的碰撞分析算法。

        3.1 管線碰撞的情況分析

        管線碰撞可能出現(xiàn)的情況有4 種,如圖1所示:

        圖1 管線碰撞可能出現(xiàn)的情況

        ①如圖1(a)示,管線g1 與g2 相交,相交點(diǎn)o 處,兩條管線高程范圍有相交的情況,則兩管線會(huì)出現(xiàn)碰撞;

        ②如圖1(b)示,管線g1 與g2 平行,兩管線的空間最短距離小于兩管線的半徑之和(如管線截面為矩形則取矩形的外接圓半徑),則兩管線會(huì)出現(xiàn)碰撞;

        ③如圖1(c)示,管線g1 與g2 共線,兩管線相交或者平行空間距離小于半徑之和,則兩管線會(huì)出現(xiàn)碰撞;

        ④如圖1(d)示,管線g1 與g2 異面,管線g1 的起始點(diǎn)到管線g2 的空間距離小于兩管線的半徑之和,則兩管線會(huì)出現(xiàn)碰撞。

        3.2 管線碰撞分析算法

        (1)管線相交

        ①判斷兩管線是否相交,如果相交則進(jìn)行步驟②;

        ②首先利用線性內(nèi)插計(jì)算兩管線交點(diǎn)處的中心高程值;

        ③比較高程差L 與兩管線半徑之和R1 +R2,如果L >R1 +R2,則兩管線不碰撞,否則兩管線碰撞。

        算法流程如圖2所示:

        圖2 管線相交碰撞分析算法流程

        (2)管線平行

        ①如果有一條線段的端點(diǎn)到另一線段的垂足在另一線段內(nèi)或端點(diǎn)上,則計(jì)算兩平行線段的空間間距L,若該間距L 小于兩管線半徑之和,即L <R1 +R2,則發(fā)生碰撞。這通常發(fā)生在兩并排布置的管道,間距不符合設(shè)計(jì)要求。

        ②如果垂足均在線段外,則計(jì)算兩兩端點(diǎn)距離的最小值L,判斷L 是否小于兩管線半徑之和,若L <R1+R2,則發(fā)生碰撞;反之,則未發(fā)生碰撞。

        算法流程如圖3所示:

        圖3 管線平行碰撞分析算法流程

        (3)管線共線

        管線共線可以在空間垂直面上分析管線的碰撞情況,存在兩種可能碰撞情況:①空間垂直面上的相交,具體算法按照(1)節(jié);②空間垂直面上平行,具體算法按照(2)節(jié)。

        (4)管線異面

        首先計(jì)算兩管線的公垂線長(zhǎng)度L,若L >R1 +R2,不會(huì)碰撞,否則需要進(jìn)行以下分析:

        ①公垂線的兩個(gè)垂足均在管線段內(nèi),則發(fā)生碰撞;

        ②兩垂足至少有一個(gè)在一條管線段的外面,計(jì)算兩管線段兩兩端點(diǎn)的長(zhǎng)度(4 個(gè)),計(jì)算管線段兩端點(diǎn)到另一管線的垂距(4 個(gè)),取端點(diǎn)兩線長(zhǎng)度和垂距最小者L,若L >R1 +R2,不會(huì)碰撞,否則會(huì)出現(xiàn)碰撞。

        算法流程如圖4所示:

        圖4 管線異面碰撞分析算法流程

        4 管線碰撞分析算法程序?qū)崿F(xiàn)

        4.1 開發(fā)環(huán)境

        (1)ArcEngine

        ArcEngine 是Esri 在ArcGIS 9 版本才開始推出的新產(chǎn)品,它是一套完備的嵌入式GIS 組件庫(kù)和工具庫(kù),建立在ArcObject 之上的,ArcObjects 是整個(gè)ArcGIS 軟件的核心功能庫(kù),它是由平臺(tái)獨(dú)立的COM 對(duì)象組成。ArcEngine 在核心ArcObjects 組件上又做了一次封裝,開發(fā)人員可以用來(lái)構(gòu)建自定義GIS 和制圖應(yīng)用程序。開發(fā)人員可以擴(kuò)展對(duì)象庫(kù),并且完全控制應(yīng)用軟件用戶界面的外形和感覺[6]。

        ArcEngine 具有如下優(yōu)勢(shì)[8]:

        ①快速開發(fā)。ArcGIS Engine 提供了豐富的GIS組件方便用戶快速的定制開發(fā)一個(gè)GIS 應(yīng)用程序,無(wú)需寫代碼即可實(shí)現(xiàn)GIS 數(shù)據(jù)加載,地圖操作等功能甚至可以實(shí)現(xiàn)高級(jí)編輯以及空間分析功能。

        ②易于部署。使用ArcGIS Engine 開發(fā)的GIS 應(yīng)用程序可以脫離ArcGIS Desktop 而運(yùn)行,只需要安裝runtime 就可以運(yùn)行。

        ③高性能。ArcEngine 是基于ArcObject 之上進(jìn)行封裝,可以實(shí)現(xiàn)ArcGIS 大部分的空間操作功能。

        ④支持多種開發(fā)語(yǔ)言。支持多種開發(fā)語(yǔ)言(.net、java、C+ +等)和主流的操作系統(tǒng)(Windows、UNIX 和Linux)。

        (2)軟硬件環(huán)境

        硬件環(huán)境:Pentium(R)4,CPU 3.0 GHZ,內(nèi)存1 GB

        系統(tǒng)運(yùn)行平臺(tái):Windows XP/Windows 7

        系統(tǒng)開發(fā)平臺(tái):Microsoft Visual Studio.NET 2008

        系統(tǒng)開發(fā)語(yǔ)言:Microsoft Visual c#

        4.2 基于ArcEngine 的管線碰撞分析算法程序?qū)崿F(xiàn)

        (1)判斷兩相交管線是否碰撞

        ①利用拓?fù)浞治鼋涌贗TopologicalOperator 判斷兩條管線是否相交,主要代碼為:

        IGeometry intersectGeo =toplogicalOperator.Intersect(geometry);

        //判斷兩管線是否相交,若相交則返回一個(gè)不為空的值,若不相交則返回值為空

        ②若兩管線相交,則通過線性內(nèi)插計(jì)算交點(diǎn)處的高程值,主要代碼為:

        doubledis=Math.Sqrt((x- fromX)* (x - fromX)+ (y- fromY)* (y- fromY));

        //獲取相交點(diǎn)到起始點(diǎn)的距離,返回一個(gè)雙精度類型的值

        doublez= dis* (toPt.Z - fromPt.Z)/ line.Length +fromPt.Z;

        //通過線性內(nèi)插方法獲取相交點(diǎn)高程,返回一個(gè)雙精度類型的值

        ③利用IFeature 接口的GetValue 函數(shù)獲取管線的半徑,并比較交點(diǎn)處高程差L 與半徑之和R1 +R2,若L <R1 +R2則管線碰撞。

        (2)判斷兩平行管線

        ①利用ILine 接口的Angle 屬性得到管線與水平方向的夾角,如果兩條管線的夾角相同或相差180°,則兩條管線平行;

        ②利用IProximityOperator 接口的ReturnDistance函數(shù)獲取兩管線的最短距離,主要代碼為:

        double dDistance = proximityOper.ReturnDistance(nextfeature.Shape);

        //獲取兩條管線的最近距離,返回值為一個(gè)雙精度類型的數(shù)值

        ③比較最短距離L 與半徑之和R1 + R2,若L <R1 +R2則兩管線碰撞。

        (3)判斷兩共線管線

        ①利用ITopologicalOperator 接口和ILine 接口的Angle 屬性判斷兩管線是否共線;

        ②若兩管線共線,則在垂直面上判斷兩管線的相交或平行;

        ③若垂直面上相交,則按照相交情況判斷是否碰撞;若垂直面上平行,則按照平行情況判斷是否碰撞。

        (4)判斷兩異面管線是否碰撞

        ①利用ITopologicalOperator 的Buffer 函數(shù)獲取一定范圍內(nèi)的管線,排除相交、平行管線;

        ②利用IPolyline 的QueryPointAndDistance 獲取公垂線的長(zhǎng)度,進(jìn)而獲取最短垂線距離L,主要代碼為:

        polyline.QueryPointAndDistance(esriSegmentExtension.esri-NoExtension,pFromPt_n,false,pPt,refdTemp,refdOF,refbRight);

        //獲取點(diǎn)到一條折線的最近距離,并返回折線上到這一點(diǎn)的最近的點(diǎn),pFromPt_n 為折線外一點(diǎn),pPt 為折線上最近點(diǎn),dOF 為最近距離

        ③比較最短距離L 與半徑之和R1 + R2,若L <R1 +R2則兩管線碰撞。

        4.3 算法結(jié)果驗(yàn)證及應(yīng)用

        (1)算法結(jié)果驗(yàn)證

        本文利用天津市區(qū)某一區(qū)域的管線數(shù)據(jù)進(jìn)行系統(tǒng)測(cè)試,其分析結(jié)果如圖5所示,制作成管線三維模型如圖6所示,分析結(jié)果與模型進(jìn)行對(duì)比,驗(yàn)證了該算法的正確性。

        圖5 碰撞分析結(jié)果(部分?jǐn)?shù)據(jù))

        圖6 管線三維模型效果圖

        (2)算法應(yīng)用

        ①管線規(guī)劃設(shè)計(jì)

        規(guī)劃管理部門在進(jìn)行管線規(guī)劃路由設(shè)計(jì)時(shí),無(wú)法準(zhǔn)確判斷新設(shè)計(jì)的管線路由是否與周圍管線碰撞,進(jìn)而在施工時(shí)可能造成不必要的損失。該算法很好的解決了上述問題,為規(guī)劃管理部門管線規(guī)劃設(shè)計(jì)提供了保障。下圖7為利用該算法分析新設(shè)計(jì)的管線路由與周圍管線的碰撞情況,表格中的紅色表示與周圍管線有碰撞情況。

        圖7 管線路由碰撞分析結(jié)果

        ②管線竣工測(cè)量成果驗(yàn)證

        在管線竣工測(cè)量數(shù)據(jù)處理過程中,由于數(shù)據(jù)處理人員一時(shí)疏忽,可能會(huì)導(dǎo)致管線數(shù)據(jù)錯(cuò)誤,而出現(xiàn)管線碰撞情況,利用該算法可以很好的驗(yàn)證數(shù)據(jù),從而保證了管線測(cè)量結(jié)果的準(zhǔn)確性。

        5 總 結(jié)

        本文首先介紹了管線碰撞分析的典型算法,分析了幾何形狀下管線可能出現(xiàn)碰撞的情況,并針對(duì)每種情況給出了相應(yīng)的碰撞分析算法。基于ArcGIS 開發(fā)環(huán)境,進(jìn)行了管線碰撞分析的算法實(shí)現(xiàn),并用具體的實(shí)例數(shù)據(jù)進(jìn)行的實(shí)驗(yàn),分析結(jié)果與管線三維模型進(jìn)行了對(duì)比,從而驗(yàn)證了算法的正確性。

        在地下管網(wǎng)錯(cuò)綜復(fù)雜的今天,該碰撞分析算法為規(guī)劃部門新管線的設(shè)計(jì)和管線測(cè)繪部門提供了有效的技術(shù)支撐,該算法已應(yīng)用到天津?yàn)I海高新區(qū)數(shù)字城市規(guī)劃管理系統(tǒng)、天津津南規(guī)劃管理系統(tǒng)等規(guī)劃管理系統(tǒng)中。

        [1]肖翔.基于幾何的三維地下供水管網(wǎng)碰撞分析[J].華中科技大學(xué),2008.

        [2]袁明.基于ArcEngine 的地下管網(wǎng)綜合應(yīng)用系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].成都理工大學(xué),2008.

        [3]霍濱焱.基于圖像空間的碰撞檢測(cè)算法[D].哈爾濱:哈爾濱工程大學(xué),2005.

        [4]于國(guó)清,湯廣發(fā),郭駿等.一種基于幾何的空間管道碰撞檢測(cè)算法[J].哈爾濱工業(yè)大學(xué)學(xué)報(bào),2003,35(11):1363~1365.

        [5]張著豪,李隆方,鄭曉麗等.基于ArcEngine 的城市地下管網(wǎng)碰撞分析研究[J].測(cè)繪與空間地理信息,2012.

        [6]ArcGISDevelopeHelp,ESRI Product Document,2004.

        [7]Hubbard PM.Real-time collision detection and time-critical computing.In SIVE95,The First Workshop on Simulation and Interaction in Virtual EnvironmentsI,owaCityI,owa.University of Iowa,informal proceedings,1995(1):92 ~96.

        [8]http://www.esrichina-bj.cn.

        猜你喜歡
        碰撞檢測(cè)共線平行
        小議共線向量問題
        向量的共線
        向量的平行與垂直
        平行
        全新預(yù)測(cè)碰撞檢測(cè)系統(tǒng)
        平面幾何中三點(diǎn)共線的常見解法
        逃離平行世界
        基于BIM的鐵路信號(hào)室外設(shè)備布置與碰撞檢測(cè)方法
        Unity3D中碰撞檢測(cè)問題的研究
        三點(diǎn)共線向量式的巧妙應(yīng)用
        91精品国产综合久久久蜜| 日日摸夜夜添夜夜添一区二区| 国产精品18久久久久网站| 亚洲成人av一区二区麻豆蜜桃| 国产亚洲一区二区精品| 亚洲成人中文字幕在线视频| 97日日碰人人模人人澡| 搡老熟女老女人一区二区| 日韩av二区三区一区| 日韩av他人妻中文字幕| 久久久精品人妻一区二区三区游戏 | 欧美大黑帍在线播放| 久久久精品2019中文字幕之3| 国产精品国产三级厂七| 精品高清免费国产在线| 中文字幕亚洲精品无码| a级国产乱理论片在线观看 | 最近免费mv在线观看动漫| 国产日韩久久久精品影院首页| 新久久久高清黄色国产| 人妻精品久久一区二区三区| 熟妇人妻无乱码中文字幕真矢织江 | 亚洲综合网中文字幕在线| 国产亚洲精品av一区| 未满十八勿入av网免费| 精品国产黑色丝袜高跟鞋| 亚洲双色视频在线观看| 一区二区视频在线国产| 国产精品h片在线播放| 毛茸茸的中国女bbw| 国产啪精品视频网站免| 中文字幕人妻互换激情| 亚洲国产精品成人精品无码区在线| 国内精品久久久久久中文字幕| 国产激情一区二区三区成人免费| 在线观看av不卡 一区二区三区 | 美腿丝袜一区在线观看| 国产亚洲精品97在线视频一| 欧美a级毛欧美1级a大片免费播放 国产一区二区女内射 | 日韩精品国产一区二区| 成人自拍一二在线观看|