典旭明
(河南禹宏實業(yè)有限公司,河南 鄭州 450000)
移動設備為我們的工作和生活帶來了各種便利,通常的手工計算和計算器計算在現(xiàn)場施工放線中難以勝任復雜的計算情形。Unity 作為一款國際領先的專業(yè)游戲引擎,廣泛應用于游戲開發(fā)、建筑可視化、實時三維動畫等[3]。其強大的跨平臺特性可以使產(chǎn)品很方便的在眾多主流平臺運行,在開發(fā)上Unity 采用高級語言C#和JavaScript,使程序更加模塊化,便于開發(fā)[4]。通過使用Unity 編寫運行在手機、平板電腦等智能終端設備上的軟件和程序,可以輔助現(xiàn)場測量人員快速完成計算工作,提升測量放線的效率,節(jié)約時間,將現(xiàn)場測量技術人員從繁重的測量放樣工作中解脫出來。在水利工程中應用最廣泛的是扭平面,它由一條直母線沿著兩條交叉直導線移動,并始終平行于一個導平面,通常把扭平面直接稱為扭面或扭曲面[5]。下文以扭平面為例,計算扭面的方程,并借助Unity 實現(xiàn)移動平臺程序開發(fā)。
如圖1 所示,ABCD 為某一倒虹吸出水口和渠道連接段扭面上的四個頂點,以出水口連接段的中心線里程增大的方向為x 軸正方向,以垂直中心線的偏距方向為y 軸正方向,向上為z 軸正方向建立空間直角坐標系。A (0,y1,0) B(0,y2,z2)C(x3,y3,z3) D(x3,y4,z4) (z2>0,x3≠0),A、B 在平面x = 0 上,C、D在平面x = x3上,A、B、C、D 四點不共面。
圖1 扭面計算示例
當t0由0 變到1 時,直線GH 沿AD、BC 移動到DC 生成扭面ABCD,其方程為
直線AD 的點向式方程為
當x0由0 變到x3時,平行于xoz 平面的直線MN 由AB沿準線AD、BC 移動到DC 而生成扭面ABCD 其方程為
由2.1、2.2 可見,兩種方法所生成的是同一個二次曲面。在現(xiàn)實生活中一般BC、AD 邊較長,AB、CD 邊較短,在土方粗挖的過程中通常采用挖掘機從短邊沿著長邊的方向開挖[5]。在編程繪制曲面的時候,通過細化網(wǎng)格可以增加模擬精度。下文采用網(wǎng)格加密的方法從AB 邊沿著BA、CD 的方向從上往下的方向逐行進行網(wǎng)格細化操作。在土方開挖,坡面校核,以及混凝土模板校核的過程中通常需要計算出任意一隨機采樣點沿Y 軸方向,Z 軸方向到曲面的距離。假設使用全站儀在現(xiàn)場測得的一點P,P 相對對于點O 的工程坐標為P(x0,y0,z0),令:
通過以上兩個距離值可以確定土方仍需開挖的厚度,或模板應移動的距離,準確的指導現(xiàn)場施工。
通過增加網(wǎng)格的分段數(shù),可以讓網(wǎng)格看起來更加平滑。如圖2 所示,本文采用向量GH 沿BC 至AD 逐行掃描的方式計算網(wǎng)格頂點的坐標。設AB、CD 細分為ABSeg 段,AD、BC細分為BCSeg 段,通過循環(huán)遍歷即可求得扭面上任意一網(wǎng)格頂點的坐標。下文代碼中i 表示沿BA 方向分段索引,j 表示沿BC 方向分段索引,s,t 是比例系數(shù)。
圖2 計算網(wǎng)格頂點示意圖
使用C#代碼實現(xiàn)如下:
Unity 中規(guī)定三角形頂點順時針纏繞的方向為三角形正面,本文采用由BC 至AD 逐行掃描的方式計算三角形頂點的索引。每一個小多邊形頂點三角形索引如圖3 右圖所示,下面的C#代碼采用逐行循環(huán)遍歷方式計算扭面所有頂點的三角形索引。
圖3 計算三角形索引
通過貼圖坐標可以在扭面上貼上一副位圖,表現(xiàn)上更真實的模型效果。如圖4 所示,其中扭面上任意一頂點的UV坐標可表示為P(j/BCSeg,1-i/ABSeg)。
圖4 UV 坐標計算示意圖
某一倒虹吸和渠道連接段的模型如圖5 所示。其內(nèi)側扭面的四個頂點,相對渠道中心線上的O 點的工程坐標為A(0,1.25,0)、B(0,1.25,1.7)、C(7.8,3.05,1.7)、D(7.8,0.5,0),計算示意圖如圖6 所示。在扭面段鋼筋模板安裝過程中,需要進行模板校核。使用全站儀放在模板邊緣位置測得模板上的一點P的工程坐標為P(6.05,1.748,0.958),下面使用本程序計算模板應移動的距離。
圖5 連接段模型示意圖
圖6 內(nèi)側扭面計算示意圖
在程序中點擊“輸入扭面頂點按鈕”輸入扭面4 個頂點坐標后,在上方即可繪制出扭面的模型。點擊“輸入點計算距離”按鈕,輸入P 點坐標,即可計算出P 沿Y 軸方向到扭面的距離為0.0349m,P 沿Z 軸方向到扭面的距離為-0.0300m,程序運行效果如圖7 所示。鋼模板Z 軸方向一般難以移動,所以可以將模板向內(nèi)側移動約3.5cm,在移動的過程中可以使用鋼尺配合測量距離。然后再次測量該點的坐標,根據(jù)程序的計算值,再次移動模板。重復該過程幾次后即可將模板移動到允許的測量誤差范圍內(nèi)。
通過編寫運行在移動平臺上的測量程序,可以實現(xiàn)在現(xiàn)場計算難以計算的情形。通過現(xiàn)場使用表明本程序可以幫助測量人員直觀的觀察采樣點和扭面的位置關系,判斷土方開挖的厚度或模板移動的距離,減少測量放線中可能出現(xiàn)的錯誤,極大的提高了扭面測量放線的效率。