【大地測(cè)量學(xué)基礎(chǔ)】第二部分 基本計(jì)算練習(xí)
《【大地測(cè)量學(xué)基礎(chǔ)】第二部分 基本計(jì)算練習(xí)》由會(huì)員分享,可在線閱讀,更多相關(guān)《【大地測(cè)量學(xué)基礎(chǔ)】第二部分 基本計(jì)算練習(xí)(97頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 第二部分 基本計(jì)算與編程 3 一 編程語言簡(jiǎn)介及特點(diǎn) 3 1.1 Visual Basic 概述 3 1.2 VB的基本概念 3 1.3 數(shù)據(jù)類型 4 1.4 標(biāo)準(zhǔn)控件簡(jiǎn)介 4 1.5 過程、函數(shù)和方法 6 1.6 應(yīng)用程序的設(shè)計(jì) 9 1.7 簡(jiǎn)單的編程實(shí)例 11 二 測(cè)量中幾種常用的計(jì)算 12 2.1 角度化為弧度 12 2.2 弧度化為角度計(jì)算 13 2.3 坐標(biāo)方位的計(jì)算 13 三 空間大地坐標(biāo)與空間直角坐標(biāo)之間的換算 14 3.1 由空間大地坐標(biāo)計(jì)算空間直角坐標(biāo) 14 3.2 空間直角坐標(biāo)計(jì)算空間大地坐標(biāo) 14 3.3 計(jì)算程序與范例 15 四
2、大地主題問題正反計(jì)算 17 4.1 高斯平均引數(shù)大地問題解算 17 4.2 白塞爾大地主題解算 24 4.3 嵌套系數(shù)法解算任意距離的大地主題 32 4.4 大地主題解算程序功能介紹 39 五 子午線弧長(zhǎng)正反解算 39 5.1 子午線弧長(zhǎng)正算 39 5.2 子午線弧長(zhǎng)反算 41 六 高斯投影正反算和鄰帶換算 42 6.1 高斯投影正算 42 6.2 高斯投影反算 42 6.3 高斯投影鄰帶換算 43 6.4 高斯投影計(jì)算程序及其功能 43 七 平面直角坐標(biāo)系換算 47 7.1 直接參數(shù)法 47 7.2 相似變換(赫爾墨特法) 48 7.3 正形變換法 48
3、7.4 多項(xiàng)式逼近法 49 7.5 算例與程序功能介紹 50 八 測(cè)量?jī)x器與計(jì)算機(jī)間的數(shù)據(jù)通訊 63 8.1 MSComm通訊控件及其屬性簡(jiǎn)介 63 8.2 使用MSComm控件設(shè)計(jì)通訊程序的步驟 64 8.3 數(shù)據(jù)傳輸?shù)脑O(shè)置 65 8.4 計(jì)算機(jī)接收數(shù)據(jù)的通訊程序 65 九 平面控制網(wǎng)數(shù)據(jù)處理 67 9.1 平面控制網(wǎng)的概算 67 9.2 誤差方程式與法方程的組成 77 9.3 法方程的求逆與平差計(jì)算 82 9.3 精度評(píng)定 88 9.4 圖形的繪制 92 十 高程控制網(wǎng)數(shù)據(jù)處理 97 10.1高程控制網(wǎng)的概算 97 10.2 誤差方程的組成 97 10
4、.3 法方程式組成與計(jì)算 97 10.4 精度評(píng)定 97 第二部分 基本計(jì)算與編程 《大地測(cè)量學(xué)基礎(chǔ)》教程包含著許多測(cè)量基本計(jì)算問題,如常見坐標(biāo)系的計(jì)算,坐標(biāo)系之間的轉(zhuǎn)換計(jì)算,橢球大地計(jì)算、高斯投影計(jì)算、平面網(wǎng)與高程網(wǎng)平差數(shù)據(jù)處理等。對(duì)于上述相關(guān)計(jì)算必須要求測(cè)繪專業(yè)學(xué)生加以掌握,其目的是通過計(jì)算加深學(xué)生對(duì)相關(guān)基本理論與方法的理解與掌握,同時(shí)有益于學(xué)生能力的培養(yǎng)。 采用計(jì)算機(jī)編程進(jìn)行數(shù)據(jù)處理計(jì)算,其計(jì)算語言較多,比如Basic語言、C語言、Tortran、Pascal、Delphi等,不同語言各自具有不同的特點(diǎn),為了方便學(xué)生對(duì)語言的初步學(xué)習(xí),這里對(duì)Visual Basic語言作一
5、簡(jiǎn)單介紹,供學(xué)生參考。 一 編程語言簡(jiǎn)介及特點(diǎn) 1.1 Visual Basic 概述 Visual Basic(以下簡(jiǎn)稱VB)的前身是QBASIC,語言基礎(chǔ)是BASIC。自從微軟推出VB后,VB便成為程序開發(fā)人員的首選工具。它是一套完全獨(dú)立的 Windows 開發(fā)系統(tǒng),是可視化、面向?qū)ο?、采用事件?qū)動(dòng)方式的結(jié)構(gòu)化高級(jí)程序設(shè)計(jì)語言,利用其事件驅(qū)動(dòng)的編程機(jī)制、新穎易用的可視化工具,并使用 Windows 內(nèi)部應(yīng)用程序接口(API)函數(shù),采用動(dòng)態(tài)連接庫(kù)(DLL)動(dòng)態(tài)數(shù)據(jù)交換(DDE)、對(duì)象的鏈接與嵌入(OLE)以及開放式數(shù)據(jù)庫(kù)訪問(ODBC) 等技術(shù),可以高效、快速地建立 Windo
6、ws環(huán)境下功能強(qiáng)大、圖形界面豐富的應(yīng)用軟件系統(tǒng)。據(jù)統(tǒng)計(jì),僅在數(shù)據(jù)庫(kù)系統(tǒng)開發(fā)領(lǐng)域,VB就占了90%的份額。VB是基于對(duì)象的可視化程序開發(fā)工具,其優(yōu)點(diǎn)在于快捷簡(jiǎn)易地建立Windows應(yīng)用程序。按使用人員來分,VB有以下三個(gè)版本: 1.標(biāo)準(zhǔn)版 針對(duì)一般程序人員,適合普通應(yīng)用軟件的開發(fā)。 2.專業(yè)版 針對(duì)專業(yè)程序開發(fā)人員,在標(biāo)準(zhǔn)版的基礎(chǔ)上提供了對(duì)數(shù)據(jù)庫(kù)和Internet的支持。 3.企業(yè)版 適合于企業(yè)設(shè)計(jì)應(yīng)用軟件的程序開發(fā)。 對(duì)于一般的設(shè)計(jì)者而言,只要充分發(fā)揮自身的想象力,任何人均可在在較短的時(shí)間內(nèi),利用VB語言開發(fā)各種自己的實(shí)用程序??梢暬幊痰囊粋€(gè)突出特點(diǎn)是具備集成開發(fā)環(huán)境,在相應(yīng)的
7、開發(fā)平臺(tái)上集成了編輯器,編譯連接工具,控制器箱輔助工具。在VB集成開發(fā)環(huán)境下包括一些主要性能:工具箱,工具欄,工具管理器窗口,屬性窗口,窗體設(shè)計(jì)器,代碼編輯窗口等,同時(shí)集成環(huán)境的設(shè)置也非常靈活,開發(fā)人員可以按照自己的編程習(xí)慣來加以配置。 1.2 VB的基本概念 對(duì)象,是指可以當(dāng)作一個(gè)單元的代碼和數(shù)據(jù)的組合,它可以是程序中的窗體或控件,也可以是整個(gè)程序。對(duì)象有自身的狀態(tài)與方法。 屬性,是指對(duì)象具有的性質(zhì),表示對(duì)象的狀態(tài)。對(duì)象的屬性設(shè)置,可以在程序設(shè)計(jì)時(shí)在屬性窗口中實(shí)現(xiàn),也可以使用代碼設(shè)置屬性的值,其語法為: 對(duì)象名_屬性=新值 事件,是指發(fā)生在對(duì)象上的事情。Windows應(yīng)
8、用程序?qū)儆凇笆录?qū)動(dòng)”模式。對(duì)象對(duì)事件的反應(yīng)又稱為“事件過程”。 事件過程的語法: Sub 對(duì)象名_事件() 處理事件的代碼 End Sub 事件驅(qū)動(dòng),只有當(dāng)事件發(fā)生時(shí),程序才會(huì)運(yùn)行。在沒有事件的時(shí)候,整個(gè)程序處于停滯狀態(tài)。VB程序中流動(dòng)的不是數(shù)據(jù)而是事件,如果說屬性決定了對(duì)象的外觀,方法決定了對(duì)象的行為,那么事件就決定了對(duì)象之間聯(lián)系的手段。 方法,對(duì)象本身包含的函數(shù)和過程。方法決定了對(duì)象可以進(jìn)行的動(dòng)作,方法的內(nèi)容(代碼)是不可見的,當(dāng)我們需要使用某個(gè)對(duì)象的方法是,只需要使用其格式:對(duì)象名.方法 如清除窗體Form1上的內(nèi)容: Form1.cls. 以坐標(biāo)(1
9、920,1300)為圓心,以800為半徑畫園,其方法為: Form1.Circle(1920,1300), 800 過程,指事件發(fā)生時(shí)要執(zhí)行的代碼。 面向?qū)ο缶幊蹋?以對(duì)象為核心,支持對(duì)象的封裝機(jī)制,多態(tài)機(jī)制和繼承機(jī)制(VB不能真正支持繼承機(jī)制,故從嚴(yán)格意義上講VB不是真正意義上的面向?qū)ο缶幊蹋? 1.3 數(shù)據(jù)類型 VB中有豐富的數(shù)據(jù)類型,這里僅作簡(jiǎn)單介紹。 1.?dāng)?shù)字型:包括整型(Integer)、長(zhǎng)整型(Long)、單精度(Single)、雙精度(Double)、貨幣型(Currency)等。例如:Dim X As Integer 2. 字符型(String):字符型變
10、量可以存儲(chǔ)可變的字符串。 3. 布爾型(Boolean):一個(gè)變量包含簡(jiǎn)單的Yes/No、Ture/Fals信息,則可以定義為布爾型變量。例如:Dim temp As Boolean. 4. 日期型(Date):專門用來表示時(shí)間的數(shù)值類型,可以有多種表達(dá)方式。 5.對(duì)象型(Object):對(duì)象變量存儲(chǔ)的是對(duì)象的地址信息,它本身并不是一個(gè)變量,但定義為Object類型的變量可以通過賦值語句指向程序能識(shí)別的任何對(duì)象。例如: Dim Mydb As Object Set Mydb=OpenDatabase(“C:\VB6\tempDB.mdb”) 這樣對(duì)Mydb進(jìn)行訪問時(shí),
11、實(shí)際上就是對(duì)Access數(shù)據(jù)庫(kù)tempDB.mdb進(jìn)行訪問。 6: Variant類型:Variant變量類型可以存儲(chǔ)所有的數(shù)據(jù)類型,VB會(huì)自動(dòng)執(zhí)行相應(yīng)的轉(zhuǎn)換。但Variant變量類型會(huì)耗用較多的資源,所以不提倡采用。 1.4 標(biāo)準(zhǔn)控件簡(jiǎn)介 VB對(duì)控件有三種廣義的分類: 1、內(nèi)部控件:內(nèi)部控件就是在工具箱中默認(rèn)出現(xiàn)的控件,如CommandButton、Frame控件等。內(nèi)部控件總是出現(xiàn)在在工具箱中,不像ActiveX控件和可插入對(duì)象那樣可以添加到工具箱中,或從工具箱中加以刪除。 2、ActiveX控件:ActiveX 控件是擴(kuò)展名為 .ocx 的獨(dú)立文件,
12、其中包括各種版本 Visual Basic提供的控件(如 DBGrid、DBCombo、DBList 控件等),另外還有許多第三方提供的 ActiveX 控件。 3、可插入對(duì)象:如一個(gè) Excel、Word 工作表對(duì)象。因這些對(duì)象能添加到工具箱中,故可以把他們當(dāng)作控件使用。其中一些對(duì)象還支持自動(dòng)化(OLE 自動(dòng)化),使用這些控件就可在 Visual Basic應(yīng)用程序中編程控制另一應(yīng)用程序的對(duì)象。 這里僅對(duì)其中一些常用控件略加介紹 l CommandButton 按鈕(命令按鈕):按鈕是用戶與應(yīng)用程序交互的最簡(jiǎn)便的方法。用戶點(diǎn)擊按鈕,就會(huì)調(diào)用 Click 事件過程。將代碼寫入Cl
13、ick 事件過程,執(zhí)行想要執(zhí)行的動(dòng)作。 l Label 控件(標(biāo)簽):用來在窗體中顯示文字,一本對(duì)沒有Caption屬性的控件(如TextBox)起標(biāo)識(shí)作用。文本是只讀的,用戶不能修改。 l TextBox 控件(文本框):文本框控件可用來顯示與輸入文本。如果TextBox控件的Locked屬性設(shè)為True, 則用戶不能直接修改文本框的文本內(nèi)容。如果TextBox控件的MultiLine屬性設(shè)為True, 則可顯示多行文本。 l CheckBox 控件(復(fù)選框):復(fù)選框像一個(gè)開關(guān),表明一個(gè)特定的狀態(tài)是選定(on)還是清除(off)。在應(yīng)用程序中使用 CheckBox 為用戶提供了 Yes
14、/No 或 True/False 的選擇。CheckBox 是獨(dú)立工作的,用戶可以同時(shí)選擇任意多個(gè)復(fù)選框。CheckBox 的 Value 屬性有三個(gè)值(0是沒有選中即默認(rèn)值,1為選中,2 為灰色狀態(tài))。 l OptionButton 控件(選項(xiàng)按鈕):選項(xiàng)按鈕表示給用戶一組或更多的選擇。它不同于 CheckBox控件,選擇一個(gè)選項(xiàng)按鈕就會(huì)清除該組中的其他按鈕,一組中只有一個(gè)選項(xiàng)處于選項(xiàng)狀態(tài)。OptionButton 的 Value 屬性有兩個(gè)選項(xiàng) True/False。 l Frame 控件(框架):Frame 控件用來創(chuàng)建選項(xiàng)按鈕組。如果將一組 OptionButton 選項(xiàng)按鈕放在一
15、個(gè)窗體上,那么所有選項(xiàng)按鈕將構(gòu)成一組。如果相創(chuàng)建其他選項(xiàng)按鈕組,就必須將其中一組選項(xiàng)按鈕放在 Frame 控件中。 l ListBox 控件(列表框)和ComboBox 控件(組合框):列表框與組合框是在有限的空間為用戶提供大量選項(xiàng)的有效方法。ComboBox 兼有 TextBox 和 ListBox 兩者的功能,該控件允許用戶通過鍵入文本或選擇列表中的項(xiàng)目來進(jìn)行選擇。 l HScrollBar 和 VScrollBar 控件(垂直與水平滾動(dòng)條):滾動(dòng)條相當(dāng)于一個(gè)模糊的輸入裝置,當(dāng)用戶不需要精確設(shè)置數(shù)據(jù)只要大概范圍的時(shí)候,使用滾動(dòng)條控件進(jìn)行輸入是一種合適的選擇。在早期VB版本中通常把滾動(dòng)條
16、作為輸出設(shè)備,但目前建議采用滑板控件。 l CommonDialog 控件(通用對(duì)話框):通用對(duì)話框控件提供了一組標(biāo)準(zhǔn)的操作對(duì)話框,可以進(jìn)行如文件的打開與保存,設(shè)置打印選項(xiàng),選擇顏色和字體操作等。通過運(yùn)行 Windows 的幫助引擎控件還能顯示幫助。 l DBGrid 控件(數(shù)據(jù)綁定網(wǎng)格): DBGrid (Data Bound Grid) 控件提供了一般Grid 控件顯示信息,但與 Grid 控件不同,一旦綁定了某個(gè)數(shù)據(jù)表,不僅可以將數(shù)據(jù)顯示出來,而且還可以修改每個(gè)字段的內(nèi)容。 l MSFLexGrid 控件:MSFLexGrid 控件顯示和操作表格數(shù)據(jù)。對(duì)包含字符串和圖片的表格提供了
17、靈活的排序、插入數(shù)據(jù)和格式編排功能。當(dāng)與Data控件綁定時(shí),只顯示只讀數(shù)據(jù)??蓪?MSFLexGrid控件與 TextBox 控件組合,使其控件具有單元編輯功能。 l DriveListBox 控件(驅(qū)動(dòng)器列表框):驅(qū)動(dòng)器列表框是下拉式列表框。在默認(rèn)式在用戶系統(tǒng)上顯示當(dāng)前驅(qū)動(dòng)器。當(dāng)該控件獲得焦點(diǎn)時(shí),用戶可以輸入任何有效的驅(qū)動(dòng)器標(biāo)識(shí)符,或者從下拉列表中選定新驅(qū)動(dòng)器。 l DirListBox 控件(目錄列表框):目錄列表框可以顯示當(dāng)前驅(qū)動(dòng)器的目錄結(jié)構(gòu)。如果把驅(qū)動(dòng)器列表框的Dirve屬性賦予目錄列表框的Path 屬性,則可以顯示驅(qū)動(dòng)器列表中選定的驅(qū)動(dòng)器的目錄:
18、 Dir1.Path=Dirve1.Dirve l FileListBox 控件(文件列表框):文件列表框在運(yùn)行時(shí)顯示由Path屬性指定的包含在目錄中的文件。例如可用下列語句顯示當(dāng)前目錄中的所有文件: File.Path=Dir1.Path l Image 控件:Image 控件用來顯示圖形。它可顯示如位圖、圖標(biāo)、圖元文件、增強(qiáng)型圖元文件、JPEG 或GIF格式的圖形文件。 l Line 控件:直線控件用來在窗體、框架或圖片框中創(chuàng)建簡(jiǎn)單的線段。 l PictrueBox 控件:PictrueBox 控件用來顯示圖形。它可顯示如位圖、圖
19、標(biāo)、圖元文件、增強(qiáng)型圖元文件、JPEG 或GIF格式的圖形文件。但PictrueBox 控件包含了Image 控件不具有的功能,如作為其它控件的容器的功能和支持圖形方法的功能。 l Shape 控件:可用形狀控件在窗體、框架或圖片框中創(chuàng)建如矩形、正方形、橢圓形、園形、園角矩形或園角正方形形狀。 l Timer 控件:Timer 控件響應(yīng)時(shí)間的流逝。它獨(dú)立于用戶,編程用來在一定的時(shí)間間隔執(zhí)行某種操作。對(duì)于其它的后臺(tái)處理該控件非常有用。 除上述標(biāo)準(zhǔn)控件以外,這里僅介紹三種 ActiveX 控件。 l MSComm 控件:MSComm 控件為你的應(yīng)用程序提供了串口通訊功能,允許通過串口發(fā)送和
20、接收數(shù)據(jù)。每個(gè) MSComm 控件都與一個(gè)串口對(duì)應(yīng),如果在應(yīng)用程序中需要訪問多個(gè)串口,就必需有多個(gè)MSComm 控件。 l TabStrip 控件: 一個(gè) TabStrip 控件就象一組文件夾上的標(biāo)簽,使用 TabStrip 控件用戶可以在應(yīng)用程序中在窗口或?qū)υ捒蛑械耐粎^(qū)域定義多個(gè)數(shù)據(jù)頁面。該控件包含一個(gè)或多個(gè) Tab 對(duì)象,可以通過 TabStrip 控件的屬性對(duì)話框來增加或刪除Tab對(duì)象。 l Toolbar 控件:一個(gè)Toolbar 控件包含了一個(gè) Button 對(duì)象的集合,用來創(chuàng)建與應(yīng)用程序關(guān)聯(lián)的工具條。 對(duì)于其它控件的應(yīng)用請(qǐng)參考有關(guān)VB專業(yè)書籍,這里就不一一加以介紹。
21、1.5 過程、函數(shù)和方法 Visual Basic程序由若干子程序構(gòu)成,這些子程序稱為過程、函數(shù)和方法。他們都在代碼窗口中設(shè)計(jì)。 1、 過程(Procedure) 完成某種特定功能的一組程序代碼稱為過程。在Visual Basic程序中用關(guān)鍵字 Sub 和 End Sub表示過程的開始和結(jié)束。VB中共有兩種類型的過程。 2 事件過程(Event Procedure) 當(dāng)用戶在窗體上設(shè)計(jì)圖形界面時(shí),針對(duì)每個(gè)對(duì)象均有多個(gè)事件與其相關(guān)連,每個(gè)對(duì)象與每個(gè)事件都可以構(gòu)成一個(gè)事件驅(qū)動(dòng)程序,也就是說當(dāng)用戶或系統(tǒng)在某一對(duì)象上觸發(fā)某種事件時(shí),就會(huì)引發(fā)去執(zhí)行相應(yīng)的事件驅(qū)動(dòng)程序,完成特定的功能。事件過程是
22、依附于每個(gè)對(duì)象上的,由特定事件引發(fā)的程序,是VB程序的主體。VB在運(yùn)行時(shí)會(huì)自動(dòng)通過事件過程名稱來識(shí)別執(zhí)行哪個(gè)事件驅(qū)動(dòng)程序。 Sub 對(duì)象名_事件名稱() 處理事件的代碼 End Sub 2 通用過程(General Procedure) 當(dāng)多個(gè)事件過程都需要完成某種公共的功能,如完成一些公共的數(shù)據(jù)計(jì)算,或?qū)δ承┳兞窟M(jìn)行共同的操作,那么用戶可自己建立通用過程,編寫公共代碼模塊,供其他程序調(diào)用。通用模塊的聲明如下: Sub 過程名稱(參數(shù)1,參數(shù)2,…) 程序語句代碼 End Sub 2、 函數(shù)(Funtion)
23、 Visual Basic中包含兩大類函數(shù);一類是VB本身提供的已被封裝好的通用函數(shù),它不需要用戶去創(chuàng)建和聲明及編程,只需要直接調(diào)用;另一類是用戶自定義函數(shù)。 ? 常用函數(shù):包括數(shù)學(xué)函數(shù)、字符串函數(shù)、日期函數(shù)、類型轉(zhuǎn)換函數(shù)。 ① 數(shù)學(xué)函數(shù) 函數(shù)表達(dá)式 函數(shù)功能說明 Abs( 表達(dá)式) 絕對(duì)值函數(shù)。 Int(表達(dá)式) 取整函數(shù), 將表達(dá)式的值轉(zhuǎn)換為小于或等于該表達(dá)式的最大整數(shù)。 Fix(表達(dá)式) 取整函數(shù), 將表達(dá)式的值的小數(shù)部分截去,直接取整數(shù)。 Atn(表達(dá)式) 反正切函數(shù)。 Sin(表達(dá)式) 正弦函數(shù)。 Cos(表達(dá)式) 余弦函數(shù)。 Tan(表達(dá)式) 正
24、切函數(shù)。 Sqr(表達(dá)式) 平方根函數(shù)。 Exp(表達(dá)式) 以e為底的指數(shù)函數(shù)。 Sgn(表達(dá)式) 符號(hào)函數(shù),表達(dá)式值為正數(shù)、零、負(fù)數(shù),函數(shù)值分別為1、0、-1。 Rnd(表達(dá)式) 隨機(jī)數(shù)生成函數(shù),返回0與1之間的單精度的隨機(jī)數(shù)。 ②字符串函數(shù) 函數(shù)表達(dá)式 函數(shù)功能說明 函數(shù)表達(dá)式 功能 Len(字符串) 字符串長(zhǎng)度函數(shù) Str(表達(dá)式) 字符串函數(shù) Instr 查找字符函數(shù) Lcase$(字符串) 將字符串的字符轉(zhuǎn)換成小寫字母。 Ucase$(字符串) 將字符串的字符轉(zhuǎn)換成大寫字母。 Left$(字符串,表達(dá)式) 左截取字符函數(shù)
25、 Right$(字符串,表達(dá)式) 右截取字符函數(shù) Mid$(字符串,起始位置,長(zhǎng)度) 從字符串的起始位置截取指定的長(zhǎng)度的字符串。 LTrim$(字符串) 將字符串的左邊空格去掉返回字符串。 RTrim$(字符串) 將字符串的右邊空格去掉返回字符串。 Trim$(字符串) 將字符串的前后空格刪除返回字符串。 InStr( ) 字符串匹配函數(shù) StrComp() 字符串比較函數(shù) Space(表達(dá)式) 返回由數(shù)值指定的一定數(shù)目的空格字符串。 ② 日期函數(shù) 函數(shù)表達(dá)式 函數(shù)功能說明 Year(日期表達(dá)式) 日期表達(dá)式為任意整數(shù)或字符型表達(dá)式,返回值為年份。 M
26、onth(日期表達(dá)式) 日期表達(dá)式為任意整數(shù)或字符型表達(dá)式,返回值為月份。 Weekday(日期表達(dá)式) 日期表達(dá)式為任意整數(shù)或字符型表達(dá)式,返回值為星期。 Day(日期表達(dá)式) 日期表達(dá)式為任意整數(shù)或字符型表達(dá)式,返回值為月份的天數(shù)。 Hour(日期表達(dá)式) 表達(dá)日期表達(dá)式對(duì)應(yīng)天中的小時(shí)。 Minute(日期表達(dá)式) 表示指定時(shí)間的分鐘數(shù)。 Second(日期表達(dá)式) 表示指定時(shí)間的秒數(shù)。 Now 返回計(jì)算系統(tǒng)的日期和時(shí)間。 Data$ 返回當(dāng)前系統(tǒng)日期,以字符串格式:月-日-年或月/日/年表示。 Time$ 返回當(dāng)前系統(tǒng)日期,以字符串格式:時(shí):分:秒。
27、 ④轉(zhuǎn)換函數(shù)及其它 函數(shù)表達(dá)式 函數(shù)功能說明 函數(shù)表達(dá)式 功能 Str$(數(shù)值表達(dá)式) 字符串函數(shù),將數(shù)值表達(dá)式轉(zhuǎn)換成字符串。 Val(字符串) 將文本字符串變?yōu)閿?shù)值型數(shù)據(jù)。 Asc(字符) 返回字符的ASCII碼值。 Chr$(整數(shù)) 將0-255之間的整數(shù)轉(zhuǎn)換為對(duì)應(yīng)的ASCII字符。 EOF(文件號(hào)) 讀取文件進(jìn)程函數(shù),讀到文件末尾,則其函數(shù)值為 True或1。 Error(錯(cuò)誤代碼) 錯(cuò)誤響應(yīng)函數(shù),返回錯(cuò)誤代碼所對(duì)應(yīng)的錯(cuò)誤信息字符串。 Format(變量, 格式字符串) 輸出格式函數(shù)。 RGB(R,G,B) 顏色定義函數(shù), R、G、B為數(shù)值表達(dá)式
28、。 Sell(字符串) 可執(zhí)行程序運(yùn)行函數(shù),字符串:為執(zhí)行程序的路徑。 Tab(整數(shù)) 文件輸出定位函數(shù)。 ? 用戶自定義函數(shù)(Funtion Procedure) 其用途與建立方法類似于通用過程,只是通用過程是單方向調(diào)用,只有參數(shù)傳給過程,而沒有參數(shù)值的返回;而用戶自定義函數(shù)是雙向的,調(diào)用時(shí)參數(shù)傳入函數(shù),函數(shù)執(zhí)行完畢后返回其函數(shù)值。故用戶自定義函數(shù)像變量一樣有自己的類型,它決定了函數(shù)返回值的類型。其描述為 Funtion 函數(shù)名稱(參數(shù)1,參數(shù)2,…)As 類型名稱 程序語句代碼 End Funtion Funtion 函
29、數(shù)名稱(參數(shù)1,參數(shù)2,…)As 類型名稱 程序語句代碼1 Exit Funtion 程序語句代碼2 End Funtion 3、 方法(Method) 面向?qū)ο蟮某绦蛟O(shè)計(jì)語言為程序設(shè)計(jì)人員提供了一種特殊的過程和函數(shù)稱為方法。在VB中一些通用的函數(shù)與過程編好并封裝起來,作為方法供用戶直接使用。方法是針對(duì)特定對(duì)象執(zhí)行一項(xiàng)任務(wù)的過程或函數(shù)。如在早期的 Basic 語言中,往屏幕上顯示信息和像打印機(jī)打印該信息,其語句是有區(qū)別的,即用 PRINT 語句表示像屏幕打印,而 LPRINT才是
30、向打印機(jī)打印某信息,不同的對(duì)象完成同一任務(wù)其命令語句是不同的。而 VB 語言將打印功能封裝成一特殊的 Print 方法,向不同的對(duì)象上打印信息直接指明對(duì)象,調(diào)用同一方法即可完成。方法調(diào)用的語法為: 對(duì)象名稱.方法 1.6 應(yīng)用程序的設(shè)計(jì) 1、設(shè)計(jì)應(yīng)用程序的界面 2 設(shè)計(jì)一個(gè)窗體 窗體對(duì)象是VB應(yīng)用程序設(shè)計(jì)的基本構(gòu)造模塊,是運(yùn)行應(yīng)用程序時(shí)與用戶交互操作的實(shí)際窗口。窗體有自己的屬性、事件和方法。設(shè)計(jì)窗體的第一步是設(shè)置它的屬性,窗體的屬性很多,它不僅控制著窗體的外觀,還控制著窗體的位置、行為等其它方面。屬性可以在設(shè)計(jì)程序時(shí)在“屬性”
31、窗體中設(shè)置,也可以在程序運(yùn)行時(shí)由代碼來實(shí)現(xiàn)。窗體的屬性如:BorderStyle、Caption 、Height、 Left MaxButton、MinButton、Moveable、Name、ShowInTaskar、WindowState、Icon等。 2 向窗體上添加控件 根據(jù)自身的需要在窗體上加不同的控件,并使用代碼控制來完成不同的任務(wù)。向窗體上添加控件要使用控件工具箱和窗體編輯器。實(shí)用工具箱向窗體添加控件有兩種途徑:其一在工具箱中的控件按鈕上雙擊,則窗體的中央會(huì)出現(xiàn)一個(gè)相應(yīng)的控件;其二在工具箱中的控件按鈕上單擊,則該按鈕會(huì)凹下去,鼠標(biāo)指針變?yōu)椋螤?,然后在窗體的合適位置按下鼠標(biāo)左
32、鍵即可。要?jiǎng)h除不合適的控件只要選中然后按下DEL鍵即可。 2 設(shè)置啟動(dòng)窗體 除了窗體的細(xì)節(jié)設(shè)計(jì)以外,還要考慮應(yīng)用程序的開始與結(jié)束。每個(gè)應(yīng)用程序都有自己的入口及開始執(zhí)行的地方。這里可以使用兩種方法來加以實(shí)現(xiàn)。其一設(shè)置啟動(dòng)窗體,從“工程”菜單中選擇“工程屬性”命令,在顯示對(duì)話框中選擇“通用”選項(xiàng)卡,在“啟動(dòng)對(duì)象”列表中選取新啟動(dòng)的窗體,單擊“確認(rèn)”按鈕即可。其二采用不使用啟用窗體開始運(yùn)行程序的方法,可在標(biāo)準(zhǔn)模塊中創(chuàng)建一個(gè)名為 Main 的過程,如 Sub Main( ) 過程代碼
33、 End If Main 過程必須在一個(gè)標(biāo)準(zhǔn)模塊內(nèi),不能在窗體模塊內(nèi)。要將 Sub Main 過程設(shè)為啟動(dòng)對(duì)象,可從“工程”菜單中選擇“工程屬性”命令,在顯示對(duì)話框中選擇“通用”選項(xiàng)卡,在“啟動(dòng)對(duì)象”列表中選定“Sub Main”,單擊“確認(rèn)”按鈕即可。 2 使用函數(shù)生成的對(duì)話框 在應(yīng)用程序中,可能會(huì)需要顯示一些暫時(shí)性的簡(jiǎn)短的錯(cuò)誤或警告信息,可以引起用戶的注意。用戶可以設(shè)計(jì)一個(gè)窗體來完成這個(gè)任務(wù),但最簡(jiǎn)便的方法是使用 MsgBox 函數(shù)來完成則更直接、更為方便。MsgBox 函數(shù)可以用來在對(duì)話框中顯示消息,并等待用戶單擊按鈕,然后返回一個(gè)整形的
34、值,讓程序了解用戶單擊的是哪個(gè)按鈕。MsgBox 函數(shù)的語法為: MsgBox( prompt [,buttons] [,title] [,helpfile,context]) 另外可采用 InputBox 對(duì)話框?qū)崿F(xiàn)一些簡(jiǎn)單的數(shù)據(jù)或信息的輸入,并返回包含文本框的內(nèi)容的字符串,InputBox 對(duì)話框的語法為: InputBox(prompt [,title] [,default] [,xpos] [,ypos][,helpfile,context]) 2、編寫程序代碼 l 賦值語句 VB的程序代碼由語句、常數(shù)和聲明部分組成。其中賦值語句使用頻率最高,其
35、語法為: 對(duì)象屬性或變量=表達(dá)式 l 程序的書寫規(guī)則 注釋,注釋語句可用來說明編寫的某段代碼或聲明某個(gè)變量的目的,以方便以后閱讀這些源代碼。要添加注釋,使用“’”符號(hào)作為注釋文字的開頭。 斷行,如果一個(gè)很長(zhǎng),打印和閱讀恨不方便,可采用續(xù)行符“ -”(一空格后緊跟一下劃線)將長(zhǎng)語句分成多行。 將多語句寫在一行,VB通常是一行一條語句,如果在一行中寫下多條語句,可使用“:”作為分隔符號(hào)。 l 變量 變量的命名:必須以字母開頭,不能在變量名中出現(xiàn) . 、空格或嵌入!,#,$,%,&等符號(hào),變量名的長(zhǎng)度不得超過255個(gè)字符。 變量的聲明:變量的
36、聲明語句為 Dim 變量名 As 類型。 變量的作用范圍:如果同一窗體的所有過程分享同一變量,就應(yīng)該把它定義為模塊級(jí)變量,其方法是在窗體模塊的聲明段中定義該變量。單擊窗體模塊代碼窗口的對(duì)象列表框,從中選擇“通用”選項(xiàng)即可。在窗體模塊的聲明段聲明變量,在除了使用 Dim 關(guān)鍵字外,還可以使用Public 和Private 關(guān)鍵字。用Public 關(guān)鍵字聲明模塊級(jí)變量,變量在整個(gè)應(yīng)用程序中由效,稱為公共變量或全局變量,其它模塊中的過程也可以使用這個(gè)變量。用Private 關(guān)鍵字聲明模塊級(jí)變量,本窗體中的過程可以訪問它,但其它模塊中的過程不能使用這個(gè)變量。與模塊級(jí)變量相對(duì),在過程中聲明的變量被
37、稱為局部變量,局部變量只能在過程執(zhí)行期間有效,其它代碼不能使用。如果過程結(jié)束以后還需保持過程中變量的值,可使用 Static 關(guān)鍵字聲明變量為靜態(tài)變量。 不同作用范圍的3種變量的聲明方式 作用范圍 局部變量 模塊級(jí)變量 公共變量 聲明方式 Dim, Static Dim, Private Public 變量聲明的位置 過程中 模塊的聲明段中 模塊的聲明段中 是否被本模塊中其它過程訪問 × √ √ 能否被其它模塊訪問 × × √ l 常數(shù) 在應(yīng)用程序之中,往往要
38、用到一些不變的量即常量,如pi=3.11415926.有在VB中,聲明常數(shù)的語法為 [Public|Private] Const 常數(shù)名[ As 類型]=表達(dá)式 l 運(yùn)算符號(hào) 算術(shù)運(yùn)算:加 +、減 -、乘 *、浮點(diǎn)數(shù)除法 /、整數(shù)除法 \、冪運(yùn)算 ^、求余數(shù) MOD。 比較運(yùn)算:大于 >、小于 <、大于或等于 >= 、小于或等于 <=、等于 = 、不等于 <>。 連接運(yùn)算:+ 、& 。 邏輯運(yùn)算:邏輯非 Not 、邏輯與 And、邏輯或 Or、邏輯異或 Xor、邏輯等 Eqv、蕰含 Imp。 l 流程控制語句 Visual Basic支持的條件判定結(jié)構(gòu)有三種: If…
39、Then 結(jié)構(gòu):If 條件 Then 語句 或 If 條件 Then 若干語句 End if If…Then…Else 結(jié)構(gòu): If 條件1 Then 若干語句1 [Else If 條件2 Then 若干語句2 ] Else 若干語句3 End if Select Case 結(jié)構(gòu): Sel
40、ect Case 條件 Case 表達(dá)式1 若干語句1 Case 表達(dá)式2 若干語句2 : : Case else 若干語句n End Select Visual Basic支持的條件循環(huán)控制: D0 While 循環(huán)條件 若干語句 [Exit Do] Loop D0 若干語句 Loop While 循環(huán)條件 For 計(jì)算器 = 初值 To 終止值 Step 增量 若干語句
41、 Next 計(jì)算器 1.7 簡(jiǎn)單的編程實(shí)例 運(yùn)行VB6,新建一個(gè)標(biāo)準(zhǔn)的EXE工程,從工具箱中雙擊 CommandButton 控件,在主窗體 Form1上設(shè)置兩個(gè)命令按鈕 Command1 與 Command2,雙擊Text文本控件,在主窗體 Form1上設(shè)置三個(gè)文本控件,其 Name 屬性依次為 Text1、Text2、Text3,最后拖動(dòng)一個(gè)標(biāo)簽 Label 控件放在主窗體的上中間位置。雙擊窗體 Form1,打開代碼窗口,輸入以下代碼 Private Sub Command1_click() ’ 單擊按鈕事件 Text3.text=Te
42、xt1.text+Text2.text End sub Private Sub Command2_click()’ 單擊按鈕事件 End ’ 程序運(yùn)行結(jié)束退出 End sub Private Sub Form_load( ) ’ 窗體啟動(dòng)調(diào)入內(nèi)存 Label1.Caption=“大地測(cè)量學(xué)基礎(chǔ)實(shí)驗(yàn)” Command1.Caption=“計(jì)算” Command2.Caption=“退出” Text1.text=“”:Text2.text=“ “:Text3.text=“”’給文本框賦初值 Text1.SetFocus’ Text1文本框獲得焦點(diǎn) End sub 然后運(yùn)行,
43、在Text1文本框與Text2文本框中輸入數(shù)據(jù),單擊計(jì)算按鈕,在Text3文本框中顯示計(jì)算結(jié)果。 一個(gè)較好的應(yīng)用程序必須要有好的用戶界面,在大多應(yīng)用程序中大多包含著許多通用的東西,如工具欄、狀態(tài)欄、工具提示、上下文菜單、幫助以及選項(xiàng)卡對(duì)話框等。VB 具有把所有這些添加到應(yīng)用程序中的能力,因此應(yīng)該很好的學(xué)習(xí)并加以掌握運(yùn)用。 二 測(cè)量中幾種常用的計(jì)算 角度化為弧度、弧度化為角度以及坐標(biāo)方位角的計(jì)算在測(cè)量數(shù)據(jù)處理中是經(jīng)常遇到的計(jì)算問題。也是最基本的計(jì)算問題。 2.1 角度化為弧度 將度、分、秒形式的角度angle化為弧度,采用函數(shù)功能來實(shí)現(xiàn),其函數(shù)值為返回的弧度值。其數(shù)據(jù)格式
44、為: 參數(shù)angle的整數(shù)為表示度,小數(shù)點(diǎn)后兩位表示分, 小數(shù)點(diǎn)后第三位開始表示秒, 如180度34分54.23秒, 即 angle=180.345423。 Function Radian(ByVal angle As Double) As Double Dim mm As Double, a As Double a = Abs(xx) a = a + 0.0000001 dd% = Int(a) ii% = Int((a - dd%) * 100) mm = (a - dd%) * 100 - ii% mm = dd% + ii% / 60 + mm / 36 Radian
45、 = pi * mm / 180 Radian = Sgn(angle) * Radian End Function 2.2 弧度化為角度計(jì)算 將弧度值radian 化為度、分、秒的角度形式,采用函數(shù)功能實(shí)現(xiàn),計(jì)算返回角度值。其數(shù)據(jù)格式為: 函數(shù)值qdms的整數(shù)為表示度,小數(shù)點(diǎn)后兩位表示分, 小數(shù)點(diǎn)后第三位開始表示秒, 如160度14分23.03秒, 即qdms=160.142303。 Function qdms(ByVal radian As Double) As Double Dim a1, xx , second As Double a1 = Abs(r
46、adian) a1 = a1 * 180 / pi degree% = Int(a1) xx = (a1 - degree%) * 60 minute% = Int(xx) second = (xx - minute%) * 60 qdms = degree% + minute% / 100 + second / 10000 qdms = Sgn(radian) * qdms End Function 2.3 坐標(biāo)方位的計(jì)算 已知點(diǎn)號(hào)為和兩點(diǎn)的平面坐標(biāo)、、、,求和兩點(diǎn)的坐標(biāo)方位角, 先計(jì)算,在按如下計(jì)算公式如下: Function
47、qiua(ByVal px As Double, ByVal py As Double) As Double Dim PZ As Double If px = 0 Then PZ = pi / 2# If py < 0 Then PZ = pi * 1.5 Else PZ = Atn(py / px) If px < 0 Then PZ = PZ + pi If py < 0 And px > 0 Then PZ = PZ + pi * 2 End If qiua = PZ
48、End Function 三 空間大地坐標(biāo)與空間直角坐標(biāo)之間的換算 3.1 由空間大地坐標(biāo)計(jì)算空間直角坐標(biāo) 已知橢球、,大地坐標(biāo)直角坐標(biāo)X、Y、Z,求大地坐標(biāo)B、L、H,計(jì)算公式如下 式中 。 3.2 空間直角坐標(biāo)計(jì)算空間大地坐標(biāo) 已知橢球、,大地坐標(biāo)直角坐標(biāo)X、Y、Z,求大地坐標(biāo)B、L、H。 1、 直接解法計(jì)算公式(參見熊介編著:《橢球大地測(cè)量學(xué)》) l 計(jì)算輔助量 l 計(jì)算大地經(jīng)度 l 計(jì)算大地緯度
49、 l 計(jì)算大地高 2、 迭代解法計(jì)算公式匯編 l 計(jì)算輔助量 ,, l 計(jì)算大地緯度 l 計(jì)算大地緯度 令 , ,
50、 迭代循環(huán)計(jì)算 直到滿足,以保證的計(jì)算精度至 l 計(jì)算大地高 3.3 計(jì)算程序與范例 空間大地坐標(biāo)與空間直角坐標(biāo)之間的計(jì)算程序界面如下圖所示。在窗體XYZ-BLH上設(shè)置3個(gè)Frame控件,在 Frame1 內(nèi)放置3個(gè)選擇按鈕 option1(0)、option1(1)、option(2),控制橢球參數(shù);在Frame2 內(nèi)放置2個(gè)選擇按鈕 option2(0) 與 option2(1)
51、,控制計(jì)算方法;在Frame3 內(nèi)放置1個(gè)MSFlexGrid 控件,4個(gè) CommandButton 命令按鈕,其 Caption 屬性分別為文件、添加、刪除、保存,其功能主要用來編輯數(shù)據(jù)與保存數(shù)據(jù);在窗體 XYZ-BLH上 設(shè)置3個(gè) CommandButton 命令按鈕,其 Caption 屬性分別為計(jì)算、顯示、退出,其功能為計(jì)算、用 Word 顯示計(jì)算結(jié)果、退出。其計(jì)算界面直觀、方便。 計(jì)算范例1: 已知數(shù)據(jù) , , 。 計(jì)算結(jié)果 ,,。 計(jì)算范例2: 已知數(shù)據(jù) , ,。 計(jì)算結(jié)果 , ,。 圖
52、3-1 空間大地坐標(biāo)與空間直角坐標(biāo)換算程序界面 上述計(jì)算采用直接算法,計(jì)算子程序如下: Sub BLH_XYZ(b, l, H, x, y, Z, ByVal K As Integer) EPS = e2 / (1# - e2) BB = a / Sqr(1# + EPS) Select Case K Case 1 p = Sqr(x ^ 2 + y ^ 2) UO = Atn(Z * a / p / BB) b = Atn((Z + EPS * BB * Sin(UO) ^ 3) / (p - e2 * a *
53、 Cos(UO) ^ 3)) p1 = Sqr(1# + (1# - e2) * Tan(b) ^ 2) b = Atn(Z / p + a * e2 * Tan(b) / p / p1) l = Atn(y / x) If b < 0# Then b = b + 2# * pi If l < 0# Then l = l + 2# * pi U = Atn(BB / a * Tan(b)) H = Sqr((p - a * Cos(U)) ^
54、2 + (Z - BB * Sin(U)) ^ 2) If (p - a * Cos(U)) < 0# Then H = -H Case 2 RN = a / Sqr(1# - e2 * Sin(b) * Sin(b)) x = (RN + H) * Cos(b) * Cos(l) y = (RN + H) * Cos(b) * Sin(l) Z = (RN * (1# - e2) + H) * Sin(b) End Select End Sub 四 大地
55、主題問題正反計(jì)算 參考橢球面是大地測(cè)量計(jì)算的基準(zhǔn)面。大地坐標(biāo)是橢球面上的基本坐標(biāo)系,根據(jù)大地測(cè)量的觀測(cè)成果(如距離與方向),從大地原點(diǎn)出發(fā),逐點(diǎn)計(jì)算在橢球面上的大地坐標(biāo);或根據(jù)兩點(diǎn)的大地坐標(biāo),計(jì)算它們之間的大地線長(zhǎng)度和大地方位角,這類計(jì)算稱為大地問題解算,又叫大地主題解算。大地問題解算的用途是多方面的,隨著現(xiàn)代空間技術(shù)和航空航天、航海等領(lǐng)域的發(fā)展,大地問題解算(尤其是大地反算)有著更為重要的作用。鑒于各種用途與要求不同,產(chǎn)生了不同的大地解算方法與公式。 橢球面上大地坐標(biāo)的解算比平面坐標(biāo)的解算要復(fù)雜得多,正是由于這種復(fù)雜性導(dǎo)致了大地問題解算公式的多樣化,其解算方法多大幾十種。若按解
56、算的距離來分類,一般分為短距離(400公里以內(nèi)),中距離(400~1000公里)和長(zhǎng)距離(1000~2000公里);若按解法分類可分為直接解法和間接解法;若按解算精度來分類,又可分為精密公式與近似公式等。這里介紹三種方法即高斯平均引數(shù)法、白塞爾方法與嵌套系數(shù)法的計(jì)算過程、步驟與計(jì)算程序。 4.1 高斯平均引數(shù)大地問題解算 1、高斯平均引數(shù)正算計(jì)算公式(km) 1)計(jì)算輔助量公式 2) 計(jì)算、、 的初值 3)計(jì)算、、 4)再次計(jì)算、、 5)重
57、復(fù)計(jì)算(3),直到計(jì)算滿足 如按弧度計(jì)算可取,按角度計(jì)算可取。 6)計(jì)算、、 的最后值 如果計(jì)算距離小于70km時(shí),上述計(jì)算公式中的可以略去,得到如下簡(jiǎn)化計(jì)算方法: 式中 編程計(jì)算步驟如下: 1)計(jì)算輔助量 2) 計(jì)算、、 的初值 3)計(jì)算兩點(diǎn)的平均值 4)迭代計(jì)算、、 5)計(jì)算輔
58、助量 6)計(jì)算、、 的終值 7)重復(fù)計(jì)算(3)-(6)步,直到計(jì)算滿足 如按弧度計(jì)算可取,按角度計(jì)算可取。 8)、計(jì)算、、 的最后值 2、高斯平均引數(shù)反算公式(km) 1)、 2)、 式中各系數(shù) 注:這里對(duì)教材公式中相應(yīng)系數(shù)進(jìn)行了修正與改進(jìn)。 3)、 4)、
59、 5)、 或 , 3、算例與計(jì)算程序 1)、正算范例 算例 例1( 30km ) 例2(50 km) 例3(80 km) 例4( 400 km) 參考橢球 克拉索夫斯基 克拉索夫斯基 克拉索夫斯基 克拉索夫斯基 已 知 數(shù) 據(jù) m m m m 參 考 值 注:例1取自朱華統(tǒng):《橢球大地計(jì)算》P97算例;例2取自陳鍵、晁定波主編《橢球大地測(cè)量學(xué)》P90面的數(shù)據(jù);例3、例4取自趙文光著《橢球
60、大地測(cè)量學(xué)》。 大地主題正算 ================== 計(jì)算方法: 高斯平均引數(shù)法 ( S< 200公里 ) 參考橢球:克拉索夫斯基橢球 N01 NO2 B1/B2 L1/L2 A12/A21 S12 1 2 3
61、0.29582043 120.05402184 247.2750428 28230.9350 30.24058365 119.49233864 67.19353743 3 4 40.02356784 130.10122676 328.12367500 48741.7580 40.24574365 129.52031587 148.00533348 5 6 40.02356784 130.101226
62、76 1.49430000 80000.0000 40.45479037 130.12011050 181.50535462 7 8 40.02356784 115.10000000 36.12010300 414306.5380 *43.00558744 118.10030113 218.11268087 2)、反算范例 算例 例1( 30km ) 例2(50 km) 例3(80 km) 例4( 410 km) 參考橢球 克
63、拉索夫斯基 貝塞爾橢球 克拉索夫斯基 克拉索夫斯基 已 知 數(shù) 據(jù) m 參 考 值 注:例1取自朱華統(tǒng):《橢球大地計(jì)算》P100算例;例2自陳鍵、晁定波主編《橢球大地測(cè)量學(xué)》P98面的數(shù)據(jù);例3、例4取自趙文光著《橢球大地測(cè)量學(xué)》。 大地主題反算
64、 ================== 計(jì)算方法: 高斯平均引數(shù)法 ( S< 200公里 ) 參考橢球:克拉索夫斯基橢球 N01 NO2 B1/B2 L1/L2 A12/A21 S12 1 2 30.29582043 120.05402184 247.27504227 28230.9379 30.24058354 119.49233
65、853 67.19353680 30.24058354 119.49233853 67.19354031 *3 4 53.50028809 10.12041772 25.16319782 47652.5967 54.13152891 10.30472430 205.31408796 5 6 40.02356784 130.10122627 1.49432983 80000
66、.0044 40.45479027 130.12011040 181.50538462 *7 8 40.02356784 115.10000000 36.12012391 414306.5531 43.00558784 118.10030000 218.11265892 注:例2參考橢球?yàn)樨惾麪枡E球;例4計(jì)算結(jié)果未能滿足計(jì)算精度。 3)、高斯平均引數(shù)正反算計(jì)算程序 Sub DDZT_GS(B1 As Double, L1 As Double, A1 As Double, S12 As Double, B2 As Double, L2 As Double, A2 As Double, k As Integer) eps = e2 / (1# - e2) Select Case k Case 1 t1 = Sin(B1): t2 = Cos(B1) NB = a / Sqr
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 運(yùn)煤設(shè)備的運(yùn)行和檢修
- 各種煤礦安全考試試題-8
- 窯主、副操作員考試試題(附答案)
- 煤礦安全基礎(chǔ)知識(shí)問答題含解析-3
- 井巷掘進(jìn)常見事故及預(yù)防措施總結(jié)
- 某礦業(yè)公司高處作業(yè)安全管理制度
- 非煤礦山現(xiàn)場(chǎng)安全管理
- 常見礦物的簡(jiǎn)易鑒定特征表
- 井下作業(yè)英語100句含中文翻譯
- 瓦斯安全治理理念二十條
- 煤礦電氣設(shè)備失爆原因與預(yù)防措施分析
- 煤礦煤礦運(yùn)料工安全操作規(guī)程
- 煤礦安全培訓(xùn)考試試題之簡(jiǎn)答題含答案
- 煤礦常見疾病預(yù)防與救治
- 煤礦綜采維修電工操作規(guī)程