国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于約束DelaunayTIN插值算法的表面模型構(gòu)建方法與流程

      文檔序號:12472303閱讀:458來源:國知局
      基于約束DelaunayTIN插值算法的表面模型構(gòu)建方法與流程

      本發(fā)明涉及計算機軟件開發(fā)技術(shù)領(lǐng)域,尤其涉及一種基于約束Delaunay TIN插值算法的表面模型構(gòu)建方法,具體涉及三維可視化、地質(zhì)建模、數(shù)值計算以及地質(zhì)災(zāi)害評估。



      背景技術(shù):

      表面模型是三維可視化與工程地質(zhì)建模的核心內(nèi)容,其準(zhǔn)確性將直接影響可視化效果與地質(zhì)模型的正確性。同時,由于地表模型中蘊含著豐富的地理信息,在數(shù)值計算分析與地質(zhì)災(zāi)害評估中經(jīng)常被作為研究對象與分析結(jié)果展示的載體,若表面模型中節(jié)點高程出現(xiàn)畸變或者網(wǎng)格大小及分布不合理,那么計算與評價結(jié)果可能與實際情況相去甚遠(yuǎn),決策方案南轅北轍,甚至導(dǎo)致不必要的財產(chǎn)損失與人員傷亡,造成不良社會影響。因此,有必要研究一種準(zhǔn)確、優(yōu)質(zhì)的表面模型構(gòu)建方法。

      在目前的地表模型構(gòu)建方法中,一方面,沒有考慮網(wǎng)格大小及其分布的合理性,往往在局部出現(xiàn)細(xì)長、狹小的病態(tài)三角形面片,給表面模型的進(jìn)一步處理與應(yīng)用造成了極大的困難;另一方面,在高程插值過程中并未充分考慮初始點、線等準(zhǔn)確信息的約束條件,所采用的插值方法極易造成高程值的極大化或者極小化,這種畸變幾乎很難通過后續(xù)的處理手段來有效去除,并且在消除畸變時往往會引起表面模型的失真,最終導(dǎo)致獲得的表面模型準(zhǔn)確度較低、合理性較差。



      技術(shù)實現(xiàn)要素:

      本發(fā)明的目的在于克服現(xiàn)有地表模型構(gòu)建方法中經(jīng)常出現(xiàn)病態(tài)三角形面片,未充分考慮初始點、線等準(zhǔn)確信息的約束條件,插值獲得的高程容易形成畸變,表面模型準(zhǔn)確度較低、合理性較差等不足,提供一種基于約束Delaunay TIN插值算法的表面模型構(gòu)建方法。

      本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:

      讀取包含表面模型點、線空間幾何信息的DXF文件,在此基礎(chǔ)上,基于Delaunay TIN網(wǎng)格剖分算法,充分考慮初始TIN的約束條件,根據(jù)插入點所處的點、線、面不同位置分別采用不同插值方法,實現(xiàn)了優(yōu)化Delaunay TIN網(wǎng)格各節(jié)點高程的獲取與表面模型的建立,并通過vtkpython對其進(jìn)行可視化顯示。

      具體地說:

      一、基于約束Delaunay TIN插值算法的表面模型構(gòu)建系統(tǒng)(簡稱系統(tǒng))

      本系統(tǒng)包括數(shù)據(jù)處理單元10、表面模型生成單元20、表面模型顯示單元30、輸入點線數(shù)據(jù)40和輸出表面模型50;

      輸入點線數(shù)據(jù)40、數(shù)據(jù)處理單元10、表面模型生成單元20、表面模型顯示單元30和輸出表面模型50依次交互;表面模型生成單元20和輸出表面模型50交互。

      二、基于約束Delaunay TIN插值算法的表面模型構(gòu)建方法(簡稱方法)

      本方法包括以下步驟:

      ①針對三維多線段DXF文件數(shù)據(jù)處理

      將表面模型初始CAD圖形文件中點、線轉(zhuǎn)化成空間點與三維多線段,并形成空間坐標(biāo)DXF文件;

      通過DXF讀取模塊獲得空間坐標(biāo)DXF文件中指定圖層的點、線三維坐標(biāo);

      對獲得的三維坐標(biāo)采用數(shù)據(jù)修正模塊進(jìn)行調(diào)整或刪除處理;

      ②基于約束Delaunay TIN插值算法的表面模型生成

      以處理后的點、線數(shù)據(jù)作為初始約束TIN構(gòu)建模塊的輸入,形成初始約束三角形網(wǎng)格;

      以處理后的點、線數(shù)據(jù)作為優(yōu)化Delaunay TIN生成模塊的輸入,形成優(yōu)化后約束三角形網(wǎng)格;

      以初始約束三角形網(wǎng)格為基礎(chǔ)數(shù)據(jù),通過優(yōu)化Delaunay TIN節(jié)點高程插值模塊對優(yōu)化后約束三角形網(wǎng)格中新增節(jié)點高程進(jìn)行插值;

      通過Delaunay TIN表面生成模塊更改優(yōu)化后約束三角形網(wǎng)格各節(jié)點高程,形成表面模型;

      ③基于vtkpython的表面模型顯示

      提取TIN表面模型中各三角形單元幾何與拓?fù)浣Y(jié)構(gòu)信息,采用表面模型可視化模塊進(jìn)行可視化展示。

      本發(fā)明具有下列特點:

      ①在地表模型構(gòu)建中,考慮網(wǎng)格大小、形狀及其分布的合理性,盡量保證地表模型中網(wǎng)格質(zhì)量優(yōu)良;

      ②在高程插值過程中充分考慮初始點、線等準(zhǔn)確信息的約束條件,根據(jù)插值點所處位置采用不同插值方法;

      ③生成的表面模型準(zhǔn)確性較高、網(wǎng)格形狀及分布合理,更適合于數(shù)值計算與災(zāi)害評估等方面的應(yīng)用;

      ④充分利用vtkpython庫提供的對象與函數(shù),有效提高點在初始TIN網(wǎng)格中定位的效率。

      依據(jù)上述特點和實際應(yīng)用,本發(fā)明收到下列的有益效果:

      ①有效消除在局部出現(xiàn)細(xì)長、狹小的病態(tài)三角形面片的現(xiàn)象;

      ②有效消除了高程在局部產(chǎn)生的畸變;

      ③表面模型準(zhǔn)確度較高、合理性較強,彌補了目前地表模型在約束條件下構(gòu)建方法的不足。

      附圖說明

      圖1是本系統(tǒng)的結(jié)構(gòu)方框圖;

      圖2是數(shù)據(jù)過濾單元10工作流程圖;

      圖3是數(shù)據(jù)處理單元20工作流程圖;

      圖4是數(shù)據(jù)傳輸單元30工作流程圖。

      圖5是表面模型顯示單元30的工作流程圖。

      其中:

      10—數(shù)據(jù)處理單元,

      11—DXF讀取模塊,

      12—數(shù)據(jù)修正模塊,

      13—初始CAD圖形文件,

      14—空間坐標(biāo)DXF文件;

      20—表面模型生成單元,

      21—初始約束TIN構(gòu)建模塊,

      22—優(yōu)化Delaunay TIN生成模塊,

      23—優(yōu)化Delaunay TIN節(jié)點高程插值模塊,

      24—Delaunay TIN表面生成模塊;

      30—表面模型顯示單元,

      31—表面模型可視化模塊;

      40—輸入點線數(shù)據(jù);

      50—輸出表面模型。

      具體實施方式

      以下結(jié)合附圖詳細(xì)說明:

      一、系統(tǒng)

      1、總體

      如圖1,本系統(tǒng)包括數(shù)據(jù)處理單元10、表面模型生成單元20、表面模型顯示單元30、輸入點線數(shù)據(jù)40和輸出表面模型50;

      輸入點線數(shù)據(jù)40、數(shù)據(jù)處理單元10、表面模型生成單元20、表面模型顯示單元30和輸出表面模型50依次交互;表面模型生成單元20和輸出表面模型50交互。

      2、功能塊

      1)數(shù)據(jù)處理單元10

      數(shù)據(jù)處理單元10包括依次交互的初始CAD圖形文件13、空間坐標(biāo)DXF文件14、DXF讀取模塊11和數(shù)據(jù)修正模塊12;

      表面模型初始CAD圖形文件13為空間坐標(biāo)DXF文件14的基礎(chǔ)數(shù)據(jù),DXF讀取模塊11將空間坐標(biāo)DXF文件14讀入內(nèi)存,數(shù)據(jù)修正模塊12完成對內(nèi)存中數(shù)據(jù)的修正。

      (1)初始CAD圖形文件13中存儲表面模型構(gòu)建所需的點、線三維空間數(shù)據(jù),其中線條為三維多線段;

      (2)空間坐標(biāo)DXF文件14為初始CAD圖形文件13的一種文件交換格式;

      (3)DXF讀取模塊11能夠?qū)臻g坐標(biāo)DXF文件14中點、線坐標(biāo)及其拓?fù)潢P(guān)系進(jìn)行識別并進(jìn)行讀??;

      (4)數(shù)據(jù)修正模塊12用來對DXF讀取模塊11獲得的點、線高程值進(jìn)行檢查、修正以及刪除。

      2)表面模型生成單20

      表面模型生成單20包括初始約束TIN構(gòu)建模塊21、優(yōu)化Delaunay TIN生成模塊22、優(yōu)化Delaunay TIN節(jié)點高程插值模塊23和Delaunay TIN表面生成模塊24;

      初始約束TIN構(gòu)建模塊21和優(yōu)化Delaunay TIN生成模塊22分別與優(yōu)化Delaunay TIN節(jié)點高程插值模塊23交互,優(yōu)化Delaunay TIN節(jié)點高程插值模塊23和Delaunay TIN表面生成模塊24交互。

      通過初始約束TIN構(gòu)建模塊21對處理后的點、線數(shù)據(jù)建立初始約束三角形網(wǎng)格;

      通過優(yōu)化Delaunay TIN生成模塊22對處理后的點、線數(shù)據(jù)建立優(yōu)化后約束三角形網(wǎng)格;

      在初始約束TIN構(gòu)建模塊21與優(yōu)化Delaunay TIN生成模塊22基礎(chǔ)上,通過優(yōu)化Delaunay TIN節(jié)點高程插值模塊23對優(yōu)化后約束三角形網(wǎng)格中節(jié)點高程進(jìn)行插值;

      通過Delaunay TIN表面生成模塊24形成表面模型。

      (1)初始約束TIN構(gòu)建模塊21將處理后的點、線數(shù)據(jù)離散為PLSG格式文件,然后在不增加額外節(jié)點基礎(chǔ)上,建立初始約束TIN;

      (2)優(yōu)化Delaunay TIN生成模塊22將處理后的點、線數(shù)據(jù)離散為PLSG格式文件,然后根據(jù)網(wǎng)格質(zhì)量要求,通過增加額外的節(jié)點,建立優(yōu)化后的約束TIN;

      (3)優(yōu)化Delaunay TIN節(jié)點高程插值模塊23根據(jù)優(yōu)化后的約束TIN任一點在初始約束TIN所處的空間位置,分別采用不同插值方法獲得該點的高程值;

      (4)Delaunay TIN表面生成模塊24用來更改優(yōu)化后約束三角形網(wǎng)格各節(jié)點高程,形成表面模型。

      3)表面模型顯示單元30

      提取優(yōu)化后約束三角形網(wǎng)格單元幾何與拓?fù)浣Y(jié)構(gòu)信息,通過表面模型可視化模塊(31)進(jìn)行可視化展示。

      (1)表面模型可視化模塊(31)通過vtkpython庫實現(xiàn)對優(yōu)化后約束三角形網(wǎng)格構(gòu)成的三維表面模型進(jìn)行顯示。

      4)輸入點線數(shù)據(jù)40

      從DXF文件中導(dǎo)入建模所需的點、線數(shù)據(jù)。

      5)輸出表面模型50

      將獲得的表面模型網(wǎng)格數(shù)據(jù)或者VTK場景中顯示的面模型進(jìn)行輸出。

      二、方法

      1、數(shù)據(jù)處理單元10的工作流程

      如圖2,數(shù)據(jù)處理單元10的工作流程包括下列步驟:

      A、獲取DXF文件數(shù)據(jù)-101

      將包含點、線三維坐標(biāo)信息的DXF文件讀入內(nèi)存;

      B、關(guān)鍵字判別-102

      提取文件每一行的字符,根據(jù)關(guān)鍵字提取對應(yīng)信息;

      C、分為兩路

      C1、空間點數(shù)據(jù)獲取-103

      若某一行字符為“POINT”,且為所需圖層,則依次獲取后續(xù)關(guān)鍵字“10”,“20”,“30”所對應(yīng)的x,y,z坐標(biāo)值;

      C2、三維多線段數(shù)據(jù)獲取-104

      若字符“POLYLINE”與“VERTEX”連續(xù)出現(xiàn),且為所需圖層,則依次獲取后續(xù)關(guān)鍵字“10”,“20”,“30”所對應(yīng)的x,y,z坐標(biāo)值,并對點進(jìn)行連續(xù)編號,形成線段拓?fù)湫畔ⅲ?/p>

      D、完成信息的獲取-105

      依次遍歷DXF文件所有數(shù)據(jù)行,完成所有點、線數(shù)據(jù)的提?。?/p>

      E、高程數(shù)據(jù)的修正處理-106

      將所有獲取的數(shù)據(jù)點高程的異常值進(jìn)行改正或刪除處理;

      F、交付表面模型生成單元-107

      將修正后的數(shù)據(jù)傳入表面模型生成單元。

      2、表面模型生成單元20的工作流程

      如圖3,表面模型生成單元20的工作流程包括下列步驟:

      a、生成PLSG文件格式-201

      將獲得的數(shù)據(jù)轉(zhuǎn)換成為只包括點與線段的PLSG文件形式;

      b、初始TIN的建立-202

      以PLSG文件中的點、線為基礎(chǔ)建立初始三維TIN;

      c、優(yōu)化Delaunay TIN的構(gòu)建-203

      以PLSG文件中的點、線為基礎(chǔ),通過增加更多的節(jié)點,形成優(yōu)質(zhì)的Delaunay TIN模型;

      d、優(yōu)化Delaunay TIN節(jié)點高程插值-204

      通過三角形重心內(nèi)插與線性插值方法獲得優(yōu)化Delaunay TIN中各節(jié)點的高程;

      e、表面模型的生成-205

      對優(yōu)化Delaunay TIN中各節(jié)點賦高程值,形成表面模型;

      f、交付表面模型顯示單元-206

      將所生成的表面各節(jié)點空間坐標(biāo)與三角形拓?fù)浣Y(jié)構(gòu)信息傳給表面模型顯示單元。

      3、表面模型生成單元20中優(yōu)化Delaunay TIN節(jié)點高程插值204的工作流程

      如圖4,表面模型生成單元20中優(yōu)化Delaunay TIN節(jié)點高程插值204的工作流程包括下列步驟:

      ⅰ、獲取優(yōu)化Delaunay TIN任一節(jié)點P(x,y)-2041

      歷遍優(yōu)化Delaunay TIN中所有節(jié)點,對于任一節(jié)點P(x,y)都要經(jīng)過以下ⅰ~ⅵ步驟;

      ⅱ、初始TIN中距P(x,y)最近的點Q(x,y)-2042

      通過VTK中數(shù)據(jù)集合對象得到初始TIN中距P(x,y)最近的點Q(x,y);

      ⅲ、判斷P(x,y)與Q(x,y)是否同一點

      通過所設(shè)置的兩點距離容許誤差,判斷P(x,y)與Q(x,y)是否同一點-2043;

      是則通過P(x,y)即為Q(x,y)的高程-2047進(jìn)入步驟ⅵ,否則進(jìn)入步驟ⅳ;

      ⅳ、提取點Q(x,y) 所有鄰接三角形TA

      若P(x,y)與Q(x,y)為不同的點,在初始TIN中中提取與點Q(x,y)鄰接的所有三角形的集合TA-2044;

      ⅴ、判斷點P(x,y)是否在TA內(nèi)

      判斷點P(x,y)是否位于TA所形成的區(qū)域內(nèi)-2045,是則:

      *若點P(x,y)位于在TA內(nèi),且位于某三角形內(nèi)部,則采用三角形中心坐標(biāo)插值方法來計算點P(x,y)的高程,三角形重心內(nèi)插法-2048;

      *若點P(x,y)位于在TA內(nèi),且位于某一條邊上,則采用線段兩端點線性插值方法來計算點P(x,y)的高程,兩端點線性插值法-2049;

      否則通過不斷擴大TA范圍-20410跳轉(zhuǎn)到步驟ⅳ;

      ⅵ、獲得點Q(x,y)的高程。

      4、表面模型顯示單元30的工作流程

      如圖5,表面模型顯示單元30的工作流程包括下列步驟:

      Ⅰ、VTK數(shù)據(jù)格式的生成-301

      將優(yōu)化、插值后的表面模型轉(zhuǎn)化為vtkpython中vtkPolydata類型數(shù)據(jù)格式;

      Ⅱ、表面模型的顯示-302

      將vtkPolydata數(shù)據(jù)通過VTK中vtkActor對象進(jìn)行顯示。

      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1