王旭華,孫路偉
(大連大學(xué) 建筑工程學(xué)院,遼寧 大連 116622)
全站儀功能齊全,使用方便,在工程測(cè)量教學(xué)中具有舉足輕重的地位,然而在教學(xué)實(shí)踐中,卻存在著有限的學(xué)時(shí)與全站儀大量操作步驟之間的矛盾,同時(shí)相對(duì)昂貴的價(jià)格也使學(xué)生不能隨時(shí)使用全站儀,這些給全站儀教學(xué)和學(xué)生的學(xué)習(xí)帶來了許多不便。為了解決這一問題,設(shè)計(jì)一個(gè)全站儀虛擬操作系統(tǒng)就顯得尤為必要,一些學(xué)者已經(jīng)對(duì)此進(jìn)行了探索和研究[1-7],但其操作界面都是由繪圖工具繪制而成,不夠逼真,且設(shè)計(jì)步驟也不夠具體。
本文利用flash 對(duì)全站儀虛擬操作系統(tǒng)進(jìn)行了設(shè)計(jì)研究,重點(diǎn)解決了隨機(jī)數(shù)生成與數(shù)組建立,模式轉(zhuǎn)換與時(shí)間監(jiān)控,文本存儲(chǔ)與算法運(yùn)算等三類關(guān)鍵編程問題,并給出了其主要設(shè)計(jì)步驟和代碼。系統(tǒng)導(dǎo)入全站儀操作界面的照片,效果逼真,如圖1 所示。此外,操作界面下方配有實(shí)際測(cè)量步驟的使用說明,便于教學(xué)和學(xué)習(xí)。
圖1 系統(tǒng)開始界面
當(dāng)全站儀開機(jī)進(jìn)入操作界面,屏幕上顯示水平角HR 和豎直角VR 的度分秒隨機(jī)數(shù)值,其中分秒的值小于10 時(shí)會(huì)在該數(shù)值前默認(rèn)加零,并且按置零鍵后VR 的讀數(shù)保持不變。實(shí)現(xiàn)上述功能是采用Math 函數(shù)下的random 隨機(jī)函數(shù)、數(shù)組array 的文本賦值和if 條件語句。下面以豎直度盤VR 編碼為例,用Actionscript 語言編程如下:
水平度盤HR 與VR 編碼類似,只需變動(dòng)相關(guān)數(shù)字即可。其后添加if 條件語句,使得分秒的值小于10 時(shí)會(huì)在該數(shù)值前默認(rèn)加零。以VR 的分?jǐn)?shù)文本為例:當(dāng)分?jǐn)?shù)文本數(shù)值小于10 時(shí)在其前加零。 執(zhí)行上述代碼,結(jié)果如圖2 所示:
圖2 全站儀界面效果圖
全站儀進(jìn)行新建文件時(shí)常常涉及到數(shù)字模式和字母模式的轉(zhuǎn)換,并通過F3 按鈕來實(shí)現(xiàn)數(shù)字和字母的循環(huán)轉(zhuǎn)換。當(dāng)在字母模式下還涉及到一個(gè)功能鍵控制三個(gè)字母相互轉(zhuǎn)換的問題。該功能是flash 編程中的難點(diǎn),涉及到較深的編程知識(shí),限于篇幅,本文只列出編程中的重點(diǎn)語句,供讀者參考。
首先,對(duì)按鈕次數(shù)進(jìn)行聲明,采用_global 全局函數(shù)定義:聲明按鈕次數(shù) 聲明后,添加動(dòng)作按鈕,命名,部分編程如下:
//字母按鈕的數(shù)據(jù)定義。
在模式轉(zhuǎn)換按鈕中添加如下功能代碼:
同理,字母模式與此類似,只需改下變量和數(shù)值即可。其次,編寫時(shí)間監(jiān)控代碼,在字母鍵中添加功能代碼,部分代碼如下:
其后,加入if 條件語句,通過條件的辨別,建立時(shí)間差與點(diǎn)擊按鈕次數(shù)的關(guān)系,實(shí)現(xiàn)一鍵控制三個(gè)字母的轉(zhuǎn)換,if 編程結(jié)構(gòu)如下:
全站儀中最重要的功能之一就是根據(jù)角度和距離的幾何關(guān)系進(jìn)行坐標(biāo)計(jì)算,并將結(jié)果進(jìn)行儲(chǔ)存。在編寫過程中引入三角函數(shù),調(diào)用前面的水平角和豎直角,建立與距離的函數(shù)關(guān)系,實(shí)現(xiàn)算法的編寫。限于篇幅,只給出大致編程內(nèi)容和編寫流程。使用SharedObject共享對(duì)象和LoadVariables函數(shù)分別實(shí)現(xiàn)文本儲(chǔ)存和文本導(dǎo)入,其文本存儲(chǔ)路徑為系統(tǒng)安裝程序的根目錄下,部分編程內(nèi)容如下所示,編寫流程如圖3 所示:
//輸入文本框賦值。
圖3 文本儲(chǔ)存編寫流程
注意:新建的文本文檔的保存編碼為ETF-8 格式,否則調(diào)用時(shí)會(huì)出現(xiàn)亂碼。
算法編寫是通過三角函數(shù)建立算法關(guān)系,求出相應(yīng)的結(jié)果。在編程中采用三角函數(shù),建立函數(shù)關(guān)系式,以余弦算法為例:
c.text=b.text*Math.cos(a.text) //實(shí)現(xiàn)余弦的計(jì)算
(1)本文利用flash 對(duì)全站儀虛擬操作系統(tǒng)進(jìn)行了研發(fā)和設(shè)計(jì),解決了隨機(jī)數(shù)生成與數(shù)組建立,模式轉(zhuǎn)換與時(shí)間監(jiān)控,文本存儲(chǔ)與算法編寫等三類關(guān)鍵技術(shù),并給出了其設(shè)計(jì)步驟和代碼。通過導(dǎo)入全站儀操作界面的照片,效果更加逼真。此外,在虛擬操作系統(tǒng)界面下方配有實(shí)際測(cè)量步驟的使用說明,非常便于教學(xué)和學(xué)習(xí)。
(2)本操作系統(tǒng)仍有一些不足之處,如時(shí)間代碼和文本儲(chǔ)存代碼的兼容性需要進(jìn)一步完善;若能與3D GIS 技術(shù)[5]和數(shù)字化測(cè)圖技術(shù)[1-3]結(jié)合,實(shí)現(xiàn)數(shù)字成圖,操作環(huán)境將更加真實(shí),功能更加完善。
[1] 曹俊茹, 孫建設(shè), 宋振柏. 基于AutoCAD 環(huán)境下數(shù)字化測(cè)圖教學(xué)軟件的開發(fā)[J]. 測(cè)繪通報(bào), 2005(9): 58-60.
[2] 曹俊茹, 宋振柏. 數(shù)字化數(shù)據(jù)采集與實(shí)驗(yàn)教學(xué)方法的探討[J]. 測(cè)繪通報(bào), 2007(08): 75-77.
[3] 須鼎興. 電子全站儀數(shù)字化測(cè)圖系統(tǒng)[J]. 測(cè)繪通報(bào), 2001(6): 31-49.
[4] 翟翊, 郝向陽, 趙夫來, 等. 提高“現(xiàn)代測(cè)量學(xué)”實(shí)踐教學(xué)質(zhì)量的研究[J]. 測(cè)繪通報(bào), 2012(2): 134.
[5] 袁林道, 曾明, 韓少杰, 等. Flash 3D GIS 客戶端技術(shù)研究與實(shí)踐[J]. 測(cè)繪與空間地理信息, 2013(S1): 59-66.
[6] 李永川, 紀(jì)勇. 多媒體技術(shù)在《數(shù)字測(cè)圖技術(shù)》教學(xué)中的應(yīng)用探討[J]. 地礦測(cè)繪, 2007(4): 46-48.
[7] 王曉峰, 李靜. 全站儀多媒體教學(xué)的探討[J]. 教育與職業(yè), 2007(10): 148-149.