王旭華,孫路偉
(大連大學 建筑工程學院,遼寧 大連 116622)
全站儀功能齊全,使用方便,在工程測量教學中具有舉足輕重的地位,然而在教學實踐中,卻存在著有限的學時與全站儀大量操作步驟之間的矛盾,同時相對昂貴的價格也使學生不能隨時使用全站儀,這些給全站儀教學和學生的學習帶來了許多不便。為了解決這一問題,設計一個全站儀虛擬操作系統就顯得尤為必要,一些學者已經對此進行了探索和研究[1-7],但其操作界面都是由繪圖工具繪制而成,不夠逼真,且設計步驟也不夠具體。
本文利用flash 對全站儀虛擬操作系統進行了設計研究,重點解決了隨機數生成與數組建立,模式轉換與時間監控,文本存儲與算法運算等三類關鍵編程問題,并給出了其主要設計步驟和代碼。系統導入全站儀操作界面的照片,效果逼真,如圖1 所示。此外,操作界面下方配有實際測量步驟的使用說明,便于教學和學習。

圖1 系統開始界面
當全站儀開機進入操作界面,屏幕上顯示水平角HR 和豎直角VR 的度分秒隨機數值,其中分秒的值小于10 時會在該數值前默認加零,并且按置零鍵后VR 的讀數保持不變。實現上述功能是采用Math 函數下的random 隨機函數、數組array 的文本賦值和if 條件語句。下面以豎直度盤VR 編碼為例,用Actionscript 語言編程如下:

水平度盤HR 與VR 編碼類似,只需變動相關數字即可。其后添加if 條件語句,使得分秒的值小于10 時會在該數值前默認加零。以VR 的分數文本為例:當分數文本數值小于10 時在其前加零。 執行上述代碼,結果如圖2 所示:

圖2 全站儀界面效果圖
全站儀進行新建文件時常常涉及到數字模式和字母模式的轉換,并通過F3 按鈕來實現數字和字母的循環轉換。當在字母模式下還涉及到一個功能鍵控制三個字母相互轉換的問題。該功能是flash 編程中的難點,涉及到較深的編程知識,限于篇幅,本文只列出編程中的重點語句,供讀者參考。
首先,對按鈕次數進行聲明,采用_global 全局函數定義:聲明按鈕次數 聲明后,添加動作按鈕,命名,部分編程如下:

//字母按鈕的數據定義。
在模式轉換按鈕中添加如下功能代碼:
同理,字母模式與此類似,只需改下變量和數值即可。其次,編寫時間監控代碼,在字母鍵中添加功能代碼,部分代碼如下:
其后,加入if 條件語句,通過條件的辨別,建立時間差與點擊按鈕次數的關系,實現一鍵控制三個字母的轉換,if 編程結構如下:

全站儀中最重要的功能之一就是根據角度和距離的幾何關系進行坐標計算,并將結果進行儲存。在編寫過程中引入三角函數,調用前面的水平角和豎直角,建立與距離的函數關系,實現算法的編寫。限于篇幅,只給出大致編程內容和編寫流程。使用SharedObject共享對象和LoadVariables函數分別實現文本儲存和文本導入,其文本存儲路徑為系統安裝程序的根目錄下,部分編程內容如下所示,編寫流程如圖3 所示:

//輸入文本框賦值。



圖3 文本儲存編寫流程
注意:新建的文本文檔的保存編碼為ETF-8 格式,否則調用時會出現亂碼。
算法編寫是通過三角函數建立算法關系,求出相應的結果。在編程中采用三角函數,建立函數關系式,以余弦算法為例:
c.text=b.text*Math.cos(a.text) //實現余弦的計算
(1)本文利用flash 對全站儀虛擬操作系統進行了研發和設計,解決了隨機數生成與數組建立,模式轉換與時間監控,文本存儲與算法編寫等三類關鍵技術,并給出了其設計步驟和代碼。通過導入全站儀操作界面的照片,效果更加逼真。此外,在虛擬操作系統界面下方配有實際測量步驟的使用說明,非常便于教學和學習。
(2)本操作系統仍有一些不足之處,如時間代碼和文本儲存代碼的兼容性需要進一步完善;若能與3D GIS 技術[5]和數字化測圖技術[1-3]結合,實現數字成圖,操作環境將更加真實,功能更加完善。
[1] 曹俊茹, 孫建設, 宋振柏. 基于AutoCAD 環境下數字化測圖教學軟件的開發[J]. 測繪通報, 2005(9): 58-60.
[2] 曹俊茹, 宋振柏. 數字化數據采集與實驗教學方法的探討[J]. 測繪通報, 2007(08): 75-77.
[3] 須鼎興. 電子全站儀數字化測圖系統[J]. 測繪通報, 2001(6): 31-49.
[4] 翟翊, 郝向陽, 趙夫來, 等. 提高“現代測量學”實踐教學質量的研究[J]. 測繪通報, 2012(2): 134.
[5] 袁林道, 曾明, 韓少杰, 等. Flash 3D GIS 客戶端技術研究與實踐[J]. 測繪與空間地理信息, 2013(S1): 59-66.
[6] 李永川, 紀勇. 多媒體技術在《數字測圖技術》教學中的應用探討[J]. 地礦測繪, 2007(4): 46-48.
[7] 王曉峰, 李靜. 全站儀多媒體教學的探討[J]. 教育與職業, 2007(10): 148-149.