System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及高程估算領域,尤其涉及一種基于delaunay三角網的高程計算方法及系統。
技術介紹
1、在cad成圖作業中,需要根據指定點生成delaunay三角網,然后確定指定點所在的三角形,進而計算三角形中指定點的高程,在此過程中,確定指定點所在的三角形是很耗時的。
2、現有技術一般通過線性搜索法和跳躍與行走法去估算指定點的高程,其中,線性搜索法需要遍歷三角網中的每一個三角形,檢查指定點是否在該三角形內部,這一做法耗時較長,不適用于三角網規模較大的場景中;而跳躍與行走法需要隨機選擇一個起始三角形,依次判斷指定點是否在該三角形內,這一做法與delaunay三角形的分布有關,如果點集分布不均勻或者起點選擇不佳,那么則需要訪問大量三角形,因此當在處理三角網規模較大的場景時,耗時也相對較長。
3、申請內容
4、本申請提供了一種基于delaunay三角網的高程計算方法,以快速且準確地計算出大規模場景中的高程值。
5、第一方面,本申請提供了一種基于delaunay三角網的高程計算方法,包括:
6、獲取若干個待計算的高程點集,并對所述高程點集進行三角剖分,得到若干個delaunay三角網;
7、將所述delaunay三角網投影到二維平面中,得到三角形集合,并對所述三角形集合中的各三角形進行拆分,得到三角形無向圖,其中,所述無向圖包括頂點集合和邊集合;
8、獲取待查詢點,利用kd樹搜索所述無向圖中與所述待查詢點距離最近的第一點位;
9、基于所述待查詢
10、本申請實施例通過獲取若干個待計算的高程點集,并對所述高程點集進行三角剖分,得到若干個delaunay三角網,可以快速生成delaunay三角網,方便后續確定待查詢點所在的三角形;通過將所述delaunay三角網投影到二維平面中,得到三角形集合,并對所述三角形集合中的各三角形進行拆分,得到三角形無向圖,可以將三維空間的三角網投影到二維平面中,方便拆分出各三角形中的每一個頂點集合和邊集合,進而有助于后續確定包含所述待查詢點的三角形以及高程計算;通過獲取待查詢點,利用kd樹搜索所述無向圖中與所述待查詢點距離最近的第一點位,可以快速獲取到與所述待查詢點距離最近的第一點位,方便后續確定包含所述待查詢點的三角形以及高程計算;基于所述待查詢點和所述第一點位,確定包含所述待查詢點的三角形,并基于所述三角形所在平面的參數方程,得到所述待查詢點對應的高程值,可以基于確定的包含所述待查詢點的三角形的參數方程進行計算,可以快速且準確地計算出大規模場景中的高程值。
11、進一步的,所述獲取若干個待計算的高程點集,具體為:
12、利用rtk或全站儀采集若干個高程點;
13、將若干個所述高程點導入cad,得到若干個待計算的高程點集。
14、這樣通過rtk或全站儀預先采集若干個高程點,并導入cad得到若干個待計算的高程點集,方便后續delaunay三角網的構建。
15、進一步的,所述利用kd樹搜索所述無向圖中與所述待查詢點距離最近的第一點位,具體為:
16、將所述待查詢點與根節點進行比較,若所述待查詢點在當前維度下的值小于所述根節點的值且所述根節點沒有子樹,確定所述根節點為第二點位,計算所述第二點位與所述待查詢點的第一距離;
17、搜索并計算所述根節點對應的父節點中的第三點位與待查詢點距離最小的第二距離,并基于所述第二距離不斷更新第二點位,直到不再有更小的距離為止,確定所述第二點位為與所述待查詢點的距離最近的第一點位。
18、這樣通過利用kd樹搜索所述無向圖中與所述待查詢點距離最近的第一點位,可以快速獲取到與所述待查詢點距離最近的第一點位,方便后續確定包含所述待查詢點的三角形以及高程計算。
19、進一步地,所述基于所述待查詢點和所述第一點位,確定包含所述待查詢點的三角形,具體為:
20、以第一點位為起點做第一射線經過所述待查詢點;
21、從所述無向圖中抽取與所述第一點位相鄰的若干個候選點,分別以第一候選點和第二候選點做第二射線和第三射線經過所述第一點位,并分別計算所述第一射線和第二射線與所述第一射線的夾角,得到第一夾角和第二夾角;
22、將所述第一夾角與所述第二夾角進行對比,若所述第二夾角小于所述第一夾角,則確定所述第二夾角對應的第二候選點位為最優候選點;
23、將所述最優候選點作為起點繼續做射線經過所述待查詢點,直至出現重復點,并基于重復點之間的射線得到包含所述待查詢點的三角形。
24、這樣通過確定包含待查詢點的三角形,并基于確定的包含所述待查詢點的三角形的參數方程進行計算,可以快速且準確地計算出大規模場景中的高程值。
25、進一步地,所述三角形所在平面的參數方程,具體為:
26、a(x-x1)+b(y-y1)+c(z-z1)=0;
27、式中,a為((y2-y1)(z3-z1)-(z2-z1)(y3-y1)),b為((x2-x1)(z3-z1)-(z2-z1)(x3-x1)),c為((x2-x1)(y3-y1)-(y2-y1)(x3-x1)),x1,y1和z1為所述第一點位的位置。
28、這樣基于確定的包含所述待查詢點的三角形的參數方程進行計算,可以快速且準確地計算出大規模場景中的高程值。
29、第二方面,本申請提供了一種基于delaunay三角網的高程計算系統,包括:第一獲取模塊、第一處理模塊、第二獲取模塊和第二處理模塊;
30、所述第一獲取模塊,用于獲取若干個待計算的高程點集,并對所述高程點集進行三角剖分,得到若干個delaunay三角網;
31、所述第一處理模塊,用于將所述delaunay三角網投影到二維平面中,得到三角形集合,并對所述三角形集合中的各三角形進行拆分,得到三角形無向圖,其中,所述無向圖包括頂點集合和邊集合;
32、所述第二獲取模塊,用于獲取待查詢點,利用kd樹搜索所述無向圖中與所述待查詢點距離最近的第一點位;
33、所述第二處理模塊,用于基于所述待查詢點和所述第一點位,確定包含所述待查詢點的三角形,并基于所述三角形所在平面的參數方程,得到所述待查詢點對應的高程值。
34、本申請實施例通過獲取若干個待計算的高程點集,并對所述高程點集進行三角剖分,得到若干個delaunay三角網,可以快速生成delaunay三角網,方便后續確定待查詢點所在的三角形;通過將所述delaunay三角網投影到二維平面中,得到三角形集合,并對所述三角形集合中的各三角形進行拆分,得到三角形無向圖,可以將三維空間的三角網投影到二維平面中,方便拆分出各三角形中的每一個頂點集合和邊集合,進而有助于后續確定包含所述待查詢點的三角形以及高程計算;通過獲取待查詢點,本文檔來自技高網...
【技術保護點】
1.一種基于Delaunay三角網的高程計算方法,其特征在于,包括:
2.根據權利要求1所述的基于Delaunay三角網的高程計算方法,其特征在于,所述獲取若干個待計算的高程點集,具體為:
3.根據權利要求1所述的基于Delaunay三角網的高程計算方法,其特征在于,所述利用KD樹搜索所述無向圖中與所述待查詢點距離最近的第一點位,具體為:
4.根據權利要求1所述的基于Delaunay三角網的高程計算方法,其特征在于,所述基于所述待查詢點和所述第一點位,確定包含所述待查詢點的三角形,具體為:
5.根據權利要求1所述的基于Delaunay三角網的高程計算方法,其特征在于,所述三角形所在平面的參數方程,具體為:
6.一種基于Delaunay三角網的高程計算系統,其特征在于,包括:第一獲取模塊、第一處理模塊、第二獲取模塊和第二處理模塊;
7.根據權利要求6所述的基于Delaunay三角網的高程計算系統,其特征在于,所述第一獲取模塊包括:采集單元和導入單元;
8.根據權利要求6所述的基于Delaunay三角
9.根據權利要求6所述的基于Delaunay三角網的高程計算系統,其特征在于,所述第二處理模塊包括:第三處理單元、計算單元、第二對比單元和構建單元;
10.根據權利要求6所述的基于Delaunay三角網的高程計算系統,其特征在于,所述三角形所在平面的參數方程,具體為:
...【技術特征摘要】
1.一種基于delaunay三角網的高程計算方法,其特征在于,包括:
2.根據權利要求1所述的基于delaunay三角網的高程計算方法,其特征在于,所述獲取若干個待計算的高程點集,具體為:
3.根據權利要求1所述的基于delaunay三角網的高程計算方法,其特征在于,所述利用kd樹搜索所述無向圖中與所述待查詢點距離最近的第一點位,具體為:
4.根據權利要求1所述的基于delaunay三角網的高程計算方法,其特征在于,所述基于所述待查詢點和所述第一點位,確定包含所述待查詢點的三角形,具體為:
5.根據權利要求1所述的基于delaunay三角網的高程計算方法,其特征在于,所述三角形所在平面的參數方程,具體為:
6.一...
【專利技術屬性】
技術研發人員:李鑫,李偉,閆志愿,王江林,黃海鋒,
申請(專利權)人:廣州南方測繪科技股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。