• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于AutoCAD規(guī)則重定義的大型TIN呈現(xiàn)方法

      2015-07-27 08:27:23廖彩艷曾昭亮崔水軍江西理工大學(xué)建筑與測(cè)繪工程學(xué)院江西贛州341000
      山東工業(yè)技術(shù) 2015年15期
      關(guān)鍵詞:海量數(shù)據(jù)

      廖彩艷,曾昭亮,崔水軍(江西理工大學(xué)建筑與測(cè)繪工程學(xué)院,江西 贛州 341000)

      基于AutoCAD規(guī)則重定義的大型TIN呈現(xiàn)方法

      廖彩艷,曾昭亮,崔水軍
      (江西理工大學(xué)建筑與測(cè)繪工程學(xué)院,江西贛州341000)

      摘要:針對(duì)海量數(shù)據(jù)不規(guī)則三角網(wǎng)(TIN)在AutoCAD中呈現(xiàn)速度慢的問題,本文提出一種快速顯示的方法。該方法利用AutoCAD中提供的二次開發(fā)功能,通過對(duì)三角網(wǎng)進(jìn)行顯示規(guī)則的重定義,改變?nèi)蔷W(wǎng)在圖形數(shù)據(jù)庫(kù)中的類型達(dá)到快速顯示的目的。實(shí)驗(yàn)結(jié)果表明,采用這種方法顯示三角網(wǎng)時(shí)所用時(shí)間在0.2秒之內(nèi),極大的縮短了三角網(wǎng)顯示的時(shí)間,提高了構(gòu)網(wǎng)效率。

      關(guān)鍵詞:AutoCAD;.NET程序開發(fā);規(guī)則重定義;TIN呈現(xiàn);海量數(shù)據(jù)

      0  引言

      AutoCAD是一款A(yù)utodesk公司開發(fā)的繪圖輔助軟件,在許多行業(yè)中都有著廣泛的應(yīng)用,并且它具有強(qiáng)大的二次開發(fā)功能[1],各個(gè)行業(yè)在它的基礎(chǔ)上開發(fā)適合自己行業(yè)的專業(yè)軟件。在測(cè)繪行業(yè)中,針對(duì)地形圖的繪制國(guó)內(nèi)有許多基于AutoCAD開發(fā)的專業(yè)繪圖軟件[2]。數(shù)字地形測(cè)量中TIN是由野外采集的離散點(diǎn)生成,它在地形圖分析中有著廣泛應(yīng)用[3],然而對(duì)于海量數(shù)據(jù)TIN的顯示大多數(shù)還難以滿足工程建設(shè)的需要。

      本文利用規(guī)則重定義這一種新的圖形顯示技術(shù),將不規(guī)則三角網(wǎng)的生成算法與之結(jié)合,實(shí)現(xiàn)在AutoCAD中快速生成和瀏覽TIN。

      1 主要技術(shù)

      1.1TIN算法

      對(duì)于TIN構(gòu)建算法國(guó)內(nèi)外學(xué)者已經(jīng)做過許多的研究[4],按其基本的原理大體可以分為三類,即插入法、生長(zhǎng)法和分治法?,F(xiàn)在更多的研究是將不同的算法結(jié)合起來,汲取各自的優(yōu)點(diǎn)。如鄭美霞等[5]提出的基于四叉樹索引的合成算法,姜志偉等[6]提出的基于格網(wǎng)和方向索引的Delaunay三角網(wǎng)算法等。

      本文結(jié)合以上兩種方法的優(yōu)點(diǎn),在數(shù)據(jù)劃分時(shí)采用從底層到頂層的方式。這種從下往上的數(shù)據(jù)組織方式,全部數(shù)據(jù)只需要進(jìn)行一次劃分,以后只是對(duì)數(shù)據(jù)塊再進(jìn)行劃分,即減少了數(shù)據(jù)分割的復(fù)雜度又有利于數(shù)據(jù)的查詢。

      1.2規(guī)則重定義

      規(guī)則重定義是用.NET對(duì)AutoCAD二次開發(fā)中的一項(xiàng)功能,它允許改變AutoCAD中標(biāo)準(zhǔn)實(shí)體的形狀、屬性、顏色等信息,使視圖中顯示的圖形與數(shù)據(jù)庫(kù)中保存的圖形不同。

      顯示重定義是規(guī)則重定義的一類,顯示重定義即改變實(shí)體的外觀,如文中將一個(gè)帶特殊標(biāo)記的圓顯示成三角網(wǎng)。利用顯示重定義技術(shù)來呈現(xiàn)TIN,避免了將三角網(wǎng)中大量的點(diǎn)、線和文字等實(shí)體寫入數(shù)據(jù)庫(kù)在屏幕上顯示。這樣就大大減少了在AutoCAD中創(chuàng)建和顯示TIN的時(shí)間。

      2 實(shí)現(xiàn)方法

      2.1規(guī)則重定義顯示三角網(wǎng)

      使用顯示重定義必須對(duì)WorldDraw函數(shù)進(jìn)行重載,在程序中創(chuàng)建一個(gè)新類Myrawable,并讓它派生于類D rawableOverrule。在其中對(duì)DrawableOverrule類中的WorldDraw函數(shù)進(jìn)行重載:

      public override bool WorldDraw(Drawabledrawable,WorldDrawwd)

      {……}

      其中第一個(gè)參數(shù)drawable屬于GraphicsInterface命名空間的Drawable類,表示要重定義的實(shí)體對(duì)象(本文中為圓);第二個(gè)參數(shù)wd屬于GraphicsInterface命名空間的WorldDraw類,可以視其為一個(gè)用來繪制實(shí)體的畫布。

      在重載函數(shù)中添加三角網(wǎng)繪制的代碼,當(dāng)需要在視圖中添加標(biāo)記的圓形實(shí)體時(shí),程序就會(huì)調(diào)用重載的WorldDraw函數(shù)對(duì)視圖內(nèi)的三角網(wǎng)繪制輸出。

      2.2捕捉視圖內(nèi)可見三角網(wǎng)數(shù)據(jù)

      為了能快速獲取視圖內(nèi)可見部分的三角網(wǎng)數(shù)據(jù),采用分層格網(wǎng)的形式對(duì)數(shù)據(jù)進(jìn)行管理,先根據(jù)數(shù)據(jù)密度將數(shù)據(jù)分塊,再根據(jù)塊數(shù)將數(shù)據(jù)塊分區(qū),重復(fù)進(jìn)行直到最終的區(qū)數(shù)滿足要求為止。

      2.3三角網(wǎng)更新

      當(dāng)視圖進(jìn)行平移或者縮放時(shí),所顯示部分的三角網(wǎng)就會(huì)發(fā)生變化,所以需要對(duì)顯示的三角網(wǎng)進(jìn)行更新。在程序中添加AutoCAD的文檔事件ViewChanged可以來監(jiān)控視圖的變化,當(dāng)對(duì)三角網(wǎng)進(jìn)行平移或縮放時(shí)就會(huì)觸發(fā)該事件。同時(shí)因?yàn)樵趫D形數(shù)據(jù)庫(kù)中,三角網(wǎng)是以一個(gè)圓的形式存在,所以只有圓的可見屬性發(fā)生變化,才能引發(fā)WorldDraw函數(shù)對(duì)其重新繪制。所以需要在ViewChanged事件的處理程序中對(duì)圓的一個(gè)可見屬性進(jìn)行修改。這樣當(dāng)視圖發(fā)生變化時(shí),就會(huì)調(diào)用重載的WorldDraw函數(shù)對(duì)顯示的三角網(wǎng)進(jìn)行更新。

      3 實(shí)驗(yàn)分析

      利用隨機(jī)生成的離散數(shù)據(jù)對(duì)本程序進(jìn)行測(cè)試,將不同數(shù)據(jù)量時(shí)生成顯示三角網(wǎng)所用時(shí)間和CASS中所用時(shí)間進(jìn)行對(duì)比。結(jié)果如表1所示。

      表1 三角網(wǎng)生成和顯示所用時(shí)間對(duì)比

      從表1中可以看出當(dāng)數(shù)據(jù)量增加時(shí),CASS中構(gòu)網(wǎng)和顯示所花費(fèi)時(shí)間成指數(shù)級(jí)增長(zhǎng),采用規(guī)則重定義所花費(fèi)的時(shí)間成對(duì)數(shù)級(jí)增長(zhǎng),增長(zhǎng)率明顯低于前者。采用規(guī)則重定義顯示三角網(wǎng)時(shí),屏幕上呈現(xiàn)三角網(wǎng)的時(shí)間與數(shù)據(jù)總量沒有關(guān)系,只和當(dāng)前屏幕中所包含的點(diǎn)數(shù)有關(guān)。屏幕中平均點(diǎn)間距和呈現(xiàn)所用時(shí)間如表2所示。

      表2 屏幕上不同點(diǎn)密度顯示所用時(shí)間

      當(dāng)屏幕上點(diǎn)間距越小,屏幕上點(diǎn)數(shù)越多時(shí),三角網(wǎng)呈現(xiàn)所用時(shí)間越長(zhǎng)。而屏幕中所顯示點(diǎn)數(shù)的多少,不僅與圖形的縮放比例有關(guān),而且與實(shí)際的點(diǎn)密度,顯示器的尺寸等相關(guān)。當(dāng)屏幕上平均點(diǎn)間距達(dá)到1毫米時(shí),實(shí)際呈現(xiàn)的三角網(wǎng)人眼已經(jīng)很難分辨細(xì)節(jié)。

      4 結(jié)束語(yǔ)

      AutoCAD軟件在工程實(shí)踐中有著廣泛的應(yīng)用,在其中建立Delaunay三角網(wǎng)是建立DEM和進(jìn)行地形分析的基礎(chǔ)。所以實(shí)現(xiàn)在AutoCAD中快速的構(gòu)建和顯示三角網(wǎng)有著重要的意義。本文通過對(duì)AutoCAD規(guī)則重定義的運(yùn)用和Delaunay三角網(wǎng)算法的改進(jìn),解決了要將三角網(wǎng)中實(shí)體信息寫入文檔數(shù)據(jù)庫(kù)后才能顯示的問題,實(shí)現(xiàn)了在AutoCAD中快速創(chuàng)建和瀏覽TIN,極大的節(jié)省了在AutoCAD中創(chuàng)建顯示不規(guī)則三角網(wǎng)的時(shí)間,為海量數(shù)據(jù)的不規(guī)則三角網(wǎng)在AutoCAD中的后續(xù)應(yīng)用提供了一種高效的方法。

      參考文獻(xiàn):

      [1]姚鑫,宋偉東.AutoCAD環(huán)境下數(shù)字高程模型的建立和等高線的自動(dòng)繪制[J].測(cè)繪通報(bào),2003(04):29-31.

      [2]劉先森,甘濟(jì)五,王鐵山.CASS數(shù)字測(cè)圖軟件中DTM的建立[J].測(cè)繪與空間地理信息,2010,33(4):218-224.

      [3]陳楚江,王德峰.海量數(shù)據(jù)CDT快速建立及其實(shí)時(shí)更新[J].測(cè)繪學(xué)報(bào),2002,31(3)262-265.

      [4]陳弘奕,胡曉斌.海量點(diǎn)云數(shù)據(jù)等高線生成算法研究[J].測(cè)繪通報(bào),2013(10):83-86.

      [5]鄭美霞,王彥斌,馬翔旭.基于四叉樹索引構(gòu)建TIN的高效合成算法[J].地理與地理信息科學(xué),2012,28(2):20-23.

      [6]姜志偉,王東山,王伶俐.基于格網(wǎng)和方向法索引的Delaunay三角網(wǎng)生成算法[J].測(cè)繪工程,2014,23(2):57-60.

      作者簡(jiǎn)介:廖彩艷(1989-),男,江西龍南人,在讀碩士,研究方向:遙感圖像處理。

      猜你喜歡
      海量數(shù)據(jù)
      云存儲(chǔ)服務(wù)端海量數(shù)據(jù)安全存儲(chǔ)的加密解決方案
      基于HADOOP集群的數(shù)據(jù)采集和清洗
      軟件工程(2016年11期)2017-01-17 17:05:51
      商業(yè)銀行海量金融數(shù)據(jù)分析中數(shù)據(jù)分析技術(shù)的實(shí)踐探究
      海量數(shù)據(jù)庫(kù)的設(shè)計(jì)與優(yōu)化
      基于hadoop平臺(tái)海量數(shù)據(jù)的快速查詢與實(shí)現(xiàn)
      基于Hadoop的海量電信數(shù)據(jù)云計(jì)算平臺(tái)研究
      MongoDB在氣象傳感器數(shù)據(jù)處理中的應(yīng)用
      軟件(2015年11期)2016-01-12 07:59:59
      一種基于HBase的交通旅行時(shí)間計(jì)算方法
      基于MapReduce的海量數(shù)據(jù)動(dòng)態(tài)裝箱算法研究
      基于遺傳算法的多中心海量數(shù)據(jù)布局研究
      延边| 澎湖县| 南漳县| 康定县| 乐亭县| 名山县| 广宗县| 西林县| 大渡口区| 临泉县| 西华县| 嵊州市| 桦甸市| 吉林市| 桃园县| 滕州市| 罗江县| 珠海市| 拜泉县| 子洲县| 特克斯县| 霍邱县| 盱眙县| 洪泽县| 汝阳县| 丰城市| 岑溪市| 天长市| 榕江县| 灌阳县| 乡城县| 化德县| 黔西| 兰溪市| 留坝县| 舒城县| 文登市| 汤阴县| 博白县| 鄱阳县| 南丹县|