網頁

2011年11月7日 星期一

Civil 3D 地形物件與土方計算之關係 - 數學原理探討(四)

(延續前文 Civil 3D 地形物件與土方計算之關係 - 數學原理探討(三))
本文有許多的小問題如(Why?)、(How?) 等留給有興趣的朋友自行觀察及思考,均不是什麼難題,只是一些幾何觀察或簡易代數推導。

比照 Civil 3D 地形物件與土方計算之關係 - 數學原理探討(二) 文中的地形1高程點位資料分佈,但扣除右上及左上的高程資料時 (如下圖所示於Z1~Z4為頂點所構成的主要方格之外,尚存在Z'1~Z'10共10個高程資料,其位置均位於方格頂點),則其構成的 Voronoi tessellation 將如圖中橘色線所繪製的結果。(Why?)
於白色方框範圍內以前文所選取相同點位 P作為欲內插估算其高程值的位置,繪製其與四周頂點的 Voronoi diagram 的結果則如圖中綠色聚合線所框圈的範圍。此時左側的 Z'4、Z'5 高程的Voronoi tessellation 範圍會為綠色聚合線所切割交集,即可將該二點位視為對 P 點高程值之內插估算具有影響性的鄰近點位,而其它Z'`1~Z'3、Z'6~Z'10等8個點位的高程資料則與 P 點高程值之內插估算無關。此時面積權重組成為 W1~W4、W'4、W'5,與前文所述之單一方格情形比較之後,可明顯知道 W2及W3的面積縮減而新增 W'4及W'5。該Voronoi diagram  的六個頂點(J1~J6)的座標值P點的高程內插值 Zp估算可以 P (x,y)座標值表示如下(Why?):
由上即可發現 P點的高程內插值 Zp 的數學表示式非常複雜 (How?)。然而若選取上圖中 P2點作為欲內插估算其高程值的位置,則又發現此時的 Voronoi Diagram (上圖中的紫色聚合線所框圍的四邊形)與前文中的單一方格情境時相同,高程內插值 Zp2的計算式可表示如下:
顯然地,白色方格範圍內之任意選取點位 PVoronoi Diagram 會因其所在位置而呈四邊形或六邊形的情形,其衍生的高程內插值估算的數學表示亦有簡易或繁複的不同結果。上圖中的選取點 P為位於靠近白色方格左側邊界的情形,若情形為分別位於靠近白色方格右側、上側、下側時,其 Voronoi Diagram 的繪製結果又會如何?其 Zp 估算式中的各影響面積權重分佈情形又會是何情形?在那些區域內其Voronoi Diagram 與前文中的單一方格情境相同且可採相同的簡化後內插高程估算式?

前述諸多問題的解答線索,其實筆者已在 Civil 3D 地形物件與土方計算之關係 - 數學原理探討(二) 文中有所提示。請朋友自行如下圖繪製解答圖(Why?):分別於與方格鄰接的左、右、上、下的四側方格作各自的外接圓如圖中紅、黃、綠、青四個圓所示。
若選取點位P落於方格與該四個圓均無交集的區域(未影響區),則其 Voronoi Diagram 則繪製如前文的單一方格情境,即僅與方格的四個頂點有關而已,而高程內插估算則得以按鞍面公式計算之。若選取點位P落於方格與其中之一圓交集的區域(受影響區,即斜線所示區域),則其 Voronoi Diagram 之繪製與所交集外接圓的鄰接方格頂點、以及方格所處的四個頂點共六個頂點有關,其高程內插估算式相對複雜許多。

若將前圖稱作該方格的內插高程是否得以按方格四個頂點以鞍面公式估算的響影範圍圖,則將所有方格的響影範圍圖繪製拼接後可得全網格範圍的響影範圍圖。

****
本文公式撰寫之貼圖均以 LibreOffice 3.4x(3.3x) 製作,其公式描述內容如下。朋友們可自行貼附在LibreOffice.org (或是 OpenOffice.org) 的 Writer中,選取後點按"公式"圖例即可完成數學式的編製。
J1 = (X1,Y1)=~left({d^2 / 2 -(x^2+y^2)} over {alignc d-2x},~0 right) newline
J2 = (X2,Y2)=~left(0,~{d^2 / 2 -(x^2+y^2)} over {alignc d-2y} right) newline
J3 = (X3,Y3)=~left(-d,~{x^2+y^2+dx-d^2} over {alignc y- d /2} right ) newline
J4 = (X4,Y4)=~left({x^2+y^2-5d^2 /2} over {alignc d+3x / 2},~0 right) newline
J5 = (X5,Y5)=~left(-d,~{x^2+y^2+dx-d^2} over {alignc y+ d /2} right ) newline
J6 = (X6,Y6)=~left(0,~{d^2 / 2 -(x^2+y^2)} over {alignc -(d+2y)} right) newline
Zp~=~{sum W_i Z_i}over{alignc sum W_i} ~=~{W_1 Z_1+W_2 Z_2 +W_3 Z_3+W_4 Z_4+W'_4 Z'_4+W'_5 Z'_5} over {alignc W_1 +W_2+W_3+W_4+W'_4+W'_5}

沒有留言: