2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  大地測(cè)量課程設(shè)計(jì) </p><p><b>  目錄</b></p><p><b>  封面1</b></p><p><b>  技術(shù)報(bào)告3</b></p><p>  1.實(shí)習(xí)目的和意義3</p><p><b

2、>  2.實(shí)習(xí)任務(wù)3</b></p><p><b>  3.測(cè)區(qū)概況3</b></p><p><b>  4.已知高程3</b></p><p>  5.作業(yè)依據(jù)(包括各種限差和要求)4</p><p>  6. 踏勘、選點(diǎn)4</p><

3、p>  7. 使用的儀器和儀器檢驗(yàn)4</p><p>  8. 精密二等水準(zhǔn)數(shù)據(jù)采集和外業(yè)概算過(guò)程中的有關(guān)情況4</p><p>  9. 精密二等水準(zhǔn)測(cè)量外業(yè)高程概算成果4</p><p>  10. 大地測(cè)量計(jì)算所采用的編程語(yǔ)言、各個(gè)任務(wù)的框圖和編程思想以及基本數(shù)學(xué)模型等4</p><p>  11. 大地測(cè)量計(jì)算成果

4、匯總8</p><p><b>  實(shí)習(xí)報(bào)告</b></p><p><b>  技術(shù)報(bào)告</b></p><p>  1.1.1實(shí)習(xí)的目的和意義</p><p>  本次《大地測(cè)量計(jì)算與實(shí)習(xí)》是在我們完成《大地測(cè)量學(xué)》課程的基礎(chǔ)上進(jìn)行的,通過(guò)這次實(shí)習(xí),我們鍛煉并提高了儀器操作能力、實(shí)際動(dòng)手能力和

5、團(tuán)隊(duì)協(xié)作能力,同時(shí)鞏固了在課堂上學(xué)到理論知識(shí)。同時(shí)在后期的編程計(jì)算過(guò)程中,提升了我們發(fā)現(xiàn)問(wèn)題、提出問(wèn)題、解決問(wèn)題的能力,將學(xué)到的知識(shí)進(jìn)一步發(fā)散,提升自己的計(jì)算機(jī)能力,加強(qiáng)創(chuàng)新能力,為后期的工作打下基礎(chǔ)。</p><p>  1.1.2 實(shí)習(xí)任務(wù)</p><p>  本次實(shí)習(xí)共有兩項(xiàng)任務(wù)</p><p>  (1) 二等精密水準(zhǔn)測(cè)量外業(yè)觀測(cè)與概算</p>

6、<p><b>  (2) 大地測(cè)量</b></p><p>  1.1.3 測(cè)區(qū)概況</p><p>  本次我們17小組抽取的測(cè)區(qū)是珞珈山測(cè)區(qū),這段水準(zhǔn)線路環(huán)繞武漢大學(xué)文理學(xué)部珞珈山一周,較大二上學(xué)期進(jìn)行的三、四等水準(zhǔn)測(cè)量線路較短,整個(gè)測(cè)段除了從教務(wù)部至珞珈山莊和教務(wù)部至校醫(yī)院地勢(shì)起伏較大外,其余測(cè)段都較為平坦,地質(zhì)為混凝土和柏油馬路,由于部分測(cè)段在居

7、民生活區(qū),來(lái)往車輛較多,道路為典型的盤山公路。下圖標(biāo)注的是我的測(cè)段。</p><p><b>  1.1.4已知高程</b></p><p>  本次我組使用的已知高程點(diǎn)為教務(wù)部高程點(diǎn),高程為126.157m</p><p>  1.1.5 作業(yè)依據(jù)</p><p>  國(guó)家測(cè)繪局,國(guó)家一、二等水準(zhǔn)測(cè)量規(guī)范2006-05

8、-24 測(cè)繪出版社,2010儀器的檢驗(yàn) </p><p>  (1)水準(zhǔn)儀的i角限差為15″(2)標(biāo)尺的零點(diǎn)不等差為0.10mm</p><p><b>  觀測(cè)方式 。</b></p><p>  1.1.6 踏勘、選點(diǎn)</p><p>  本次實(shí)習(xí)的路線已經(jīng)確定,踏勘選點(diǎn)的過(guò)程比較簡(jiǎn)單,最后我們組選取了教務(wù)部、

9、政管院、研究總院指示牌、校區(qū)警務(wù)室、老同志干休所以及校醫(yī)院六個(gè)點(diǎn)。</p><p>  1.1.7使用的儀器和檢驗(yàn)</p><p>  本次我組使用的儀器是Trimble的DiNi電子水準(zhǔn)儀以及配套水準(zhǔn)尺,精度很高。我們進(jìn)行了水準(zhǔn)儀i角檢驗(yàn)和水準(zhǔn)尺零點(diǎn)差檢驗(yàn)(結(jié)果另附),完全符合測(cè)量規(guī)范要求。</p><p>  1.1.8精密二等水準(zhǔn)數(shù)據(jù)采集與數(shù)據(jù)概算</p

10、><p>  水準(zhǔn)線路圖已在測(cè)繪概況中繪出,觀測(cè)日期與觀測(cè)時(shí)段在觀測(cè)記錄薄中記載詳細(xì),數(shù)據(jù)記錄規(guī)范、清晰。</p><p>  1.1.9詳見附錄6</p><p>  1.1.10程序部分</p><p>  本次大地測(cè)量采用的是C#語(yǔ)言,C#是一種安全的、穩(wěn)定的、簡(jiǎn)單的、優(yōu)雅的語(yǔ)言,由C和C++衍生出來(lái)的面向?qū)ο蟮木幊陶Z(yǔ)言。它在繼承C和C++

11、強(qiáng)大功能的同時(shí)去掉了一些它們的復(fù)雜特性。C#綜合了VB簡(jiǎn)單的可視化操作和C++的高運(yùn)行效率,以其強(qiáng)大的操作能力、優(yōu)雅的語(yǔ)法風(fēng)格、創(chuàng)新的語(yǔ)言特性和便捷的面向組件編程的支持成為.NET開發(fā)的首選語(yǔ)言,并且C#成為ECMA與ISO標(biāo)準(zhǔn)規(guī)范。C#看似基于C++寫成,但又融入其它語(yǔ)言如Pascal、Java、VB等。與C++不一樣的是C#不支持對(duì)指針的訪問(wèn),保證了程序的健壯性,但是不適應(yīng)于對(duì)于指針的操作。此次程序共有四個(gè)窗體,一個(gè)類組成,類是白塞

12、爾大地主題解算的算法。</p><p>  第一個(gè)窗體為總窗體,其余的分別是高斯正反算和實(shí)測(cè)斜距歸算至高斯平面和白塞爾大地主題結(jié)算和一個(gè)GaussCaculate的類。</p><p><b>  程序主體</b></p><p><b>  一、高斯投影正反算</b></p><p>  正算是指

13、:由大地坐標(biāo)(L, B)求得高斯平面坐標(biāo)(x, y)的過(guò)程。</p><p>  反算是指:由高斯平面坐標(biāo)(x, y)求得大地坐標(biāo)(L, B)的過(guò)程。</p><p>  正算:高斯投影必須滿足的三個(gè)條件:</p><p> ?。?),中央子午線投影后為直線。</p><p> ?。?),中央子午線投影后長(zhǎng)度不變。</p>&l

14、t;p> ?。?),投影具有正性性質(zhì),即正性投影條件。</p><p>  由第一個(gè)條件可知,中央子午線東西兩側(cè)的投影必然對(duì)稱于中央子午線。設(shè)在托球面上有P1 ,P2,且對(duì)稱于中央子午線。其大地坐標(biāo)為(l, B),(-l, B)則投影后的平面坐標(biāo)一定為P1(x, y),P2(x,-y).</p><p>  由第二個(gè)條件可知,位于中央子午線上的點(diǎn),投影后的縱坐標(biāo)x應(yīng)該等于投影前從赤道

15、量至該點(diǎn)的子午弧長(zhǎng)。</p><p><b>  計(jì)算公式:</b></p><p>  1.當(dāng)將克拉索夫斯基橢球帶入計(jì)算式,可得到正算公式:</p><p><b>  其中:</b></p><p><b>  2.反算公式為:</b></p><p&g

16、t;<b>  其中:</b></p><p>  這道題目由于已經(jīng)給出了相當(dāng)精確地電算公式,因此過(guò)程比較簡(jiǎn)單,</p><p>  二、實(shí)測(cè)斜距化算到高斯平面距離</p><p>  假設(shè)1、2兩個(gè)大地點(diǎn)在橢球面上沿法線的投影點(diǎn)1’和2’間的大地線的長(zhǎng)度為S,由于在橢球面上兩點(diǎn)間大地線長(zhǎng)度與相應(yīng)法截線長(zhǎng)度之差是極微小的,可以忽略不計(jì),則可以將

17、兩點(diǎn)間的發(fā)截線長(zhǎng)度認(rèn)為是該兩點(diǎn)間的大地線長(zhǎng)度。并且,兩點(diǎn)間的發(fā)截線的長(zhǎng)度與半徑等于其起始點(diǎn)曲率半徑的圓弧長(zhǎng)相差也很小,則所求的大地線長(zhǎng)度可以認(rèn)為是半徑。其計(jì)算如下:</p><p>  S·=D*{[1-(h2-h1)/D*(h2-h1)/D]/[(1+h1/Ra)*(1+h2/Ra)]}</p><p>  這個(gè)題目的思想是先利用題目所給的X\Y坐標(biāo)求出其大地緯度和大地經(jīng)度,具

18、體投影可以用三度帶和六度帶,即先利用高斯投影正反算求出經(jīng)緯度,再利用第三題白塞爾大地主題結(jié)算求出在一號(hào)的大地方位角,具體流程圖如下。</p><p>  三 大地主題正反算</p><p>  大地主題解算:知道某些大地元素推求另一些大地元素的過(guò)程。</p><p>  正解是指:已知某點(diǎn)P1的大地坐標(biāo)(L2,B2),且知該點(diǎn)到另一點(diǎn)P2(L2,B2)的大地線長(zhǎng)及

19、其大地方位角A12,計(jì)算P2點(diǎn)的大地坐標(biāo)(L2,B2)和大地線在P2點(diǎn)的反方位角A21.的過(guò)程。</p><p>  反解是指:已知P1和P2的大地坐標(biāo)(L1,B1)和P2(L2,B2)計(jì)算P1至P2的大地線長(zhǎng),正反方位角A12、A21的過(guò)程。</p><p>  大地主題解算的基本思想:將橢球面上的大地元素按照白塞爾投影條件投影到輔助球面上,繼而在球面上進(jìn)行大地主題解算,最后在將球面上的

20、計(jì)算結(jié)果換算到橢球面上。其關(guān)鍵問(wèn)題是找出橢球面上的大地元素與球面上相應(yīng)元素之間的關(guān)系式,同時(shí)解決在球面上進(jìn)行大地主題解算的方法。</p><p>  白塞爾的三個(gè)投影條件:</p><p> ?。?)橢球面大地線投影到球面上為大圓弧;</p><p> ?。?)大地線和大圓弧上相應(yīng)點(diǎn)的方位角相等;</p><p>  (3)球面上任意一點(diǎn)的緯

21、度等于球面上相應(yīng)點(diǎn)的歸化緯度。</p><p>  大地主題解算的步驟:</p><p>  (1)按橢球面上的已知值計(jì)算球面相應(yīng)值,即實(shí)現(xiàn)橢球面向球面的過(guò)渡;</p><p> ?。?)在球面上解算大地問(wèn)題;</p><p> ?。?)按球面上得到的數(shù)值計(jì)算橢球面上的相應(yīng)數(shù)值,即實(shí)現(xiàn)從圓球向橢球的過(guò)渡。</p><p&g

22、t;  此次選用的是白塞爾大地主題解算。</p><p>  白塞爾大地主題正算公式:</p><p><b>  中間量:</b></p><p><b>  輔助函數(shù):</b></p><p><b>  球面長(zhǎng)度:</b></p><p><

23、b>  經(jīng)差改正數(shù):</b></p><p>  終點(diǎn)大地坐標(biāo)及大地方位角:</p><p>  白塞爾大地主題反算公式:</p><p><b>  輔助計(jì)算:</b></p><p>  采用迭代法同時(shí)計(jì)算起點(diǎn)大地方位角、球面長(zhǎng)度及經(jīng)差 </p><p><b> 

24、 第一次趨近,取:</b></p><p>  將計(jì)算得到的 再帶回計(jì)算經(jīng)差,直到最后兩次相同或小于給定的允許值。</p><p><b>  大地線長(zhǎng)</b></p><p><b>  反方位角</b></p><p><b>  大地測(cè)量計(jì)算成果</b>&l

25、t;/p><p>  (1)高斯投影正反算計(jì)算結(jié)果(采用第38組數(shù)據(jù)): </p><p> ?。?)實(shí)測(cè)斜距化算至高斯投影平面邊長(zhǎng)計(jì)算結(jié)果(采用克拉索夫斯基橢球):</p><p>  D12 = 578.8683m。</p><p> ?。?)大地主題解算計(jì)算結(jié)果(采用第17組第7號(hào)數(shù)據(jù)):</p><p> ?。?)

26、實(shí)測(cè)數(shù)據(jù)外業(yè)高差與概略高程表計(jì)算結(jié)果:</p><p>  每公里往返高差中數(shù)的偶然中誤差 M = 0.04mm,各個(gè)小測(cè)段的概略高程結(jié)果見附錄6。</p><p><b>  附錄1</b></p><p><b>  i角的檢校</b></p><p>  儀器:TRIMBLE DINi方法:

27、 觀測(cè)者:xxx</p><p>  日期:2011/6/28 標(biāo)尺: 記錄者:xxx</p><p>  時(shí)間:8:30 am 呈像:清晰 檢查者:xxx</p><p><b>  附錄2</b></p><p>  一對(duì)水準(zhǔn)尺零點(diǎn)差測(cè)定&

28、lt;/p><p>  標(biāo)尺:條碼式銦瓦尺N0.1 NO.2 觀測(cè)者:xxx</p><p>  儀器: Trimble DiNi NO.09008524 記錄者:xxx</p><p>  日期: 2011年6月8日 檢查者:xxx

29、</p><p><b>  附錄3</b></p><p> ?。叨?等 水 準(zhǔn) 點(diǎn) 之 記</p><p>  線 點(diǎn)名:</p><p><b>  附錄5</b></p><p><

30、;b>  第一題</b></p><p>  using System;</p><p>  using System.Collections.Generic;</p><p>  using System.ComponentModel;</p><p>  using System.Data;</p><

31、;p>  using System.Drawing;</p><p>  using System.Linq;</p><p>  using System.Text;</p><p>  using System.Windows.Forms;</p><p>  namespace 大地課程設(shè)計(jì)3</p><p&g

32、t;<b>  {</b></p><p>  public partial class Form2 : Form</p><p><b>  {</b></p><p>  public Form2()</p><p><b>  {</b></p><p

33、>  InitializeComponent();</p><p><b>  }</b></p><p>  private void button1_Click(object sender, EventArgs e)</p><p><b>  {</b></p><p>  if (ra

34、dioButton1.Checked ==true)</p><p><b>  {</b></p><p>  double x = 0, y = 0;</p><p>  double B0, B, B1, l, l1, N, a0, a3, a4, a5, a6, π, ρ, T1, T2, T3;</p><p>

35、;  //l = 1078.3596;</p><p>  l1 = (Convert.ToDouble(textBox4.Text) - Convert.ToDouble(textBox7.Text)) * 3600 + (Convert.ToDouble(textBox5.Text) - Convert.ToDouble(textBox8.Text)) * 60 +</p><p> 

36、 (Convert.ToDouble(textBox6.Text) - Convert.ToDouble(textBox9.Text));//經(jīng)差化為秒</p><p>  π = 3.141592654;</p><p>  ρ = 180.0 * 3600.0 / π;</p><p>  l = l1 / ρ;//經(jīng)差化成弧度</p><p

37、>  T1 = Convert.ToDouble(textBox1.Text); //度</p><p>  T2 = Convert.ToDouble(textBox2.Text);//分</p><p>  T3 = Convert.ToDouble(textBox3.Text);//秒</p><p>  B = T1 * 3600 + T2 * 60

38、+ T3;//化成秒</p><p>  B1 = T1 + T2 / 60.0 + T3 / 3600.0;//化成度</p><p>  B0 = B / ρ;//化為弧度</p><p>  double m = Math.Pow(Math.Cos(B0), 2);</p><p>  N = 6399698.902 - (21562.

39、267 - (108.973 - 0.612 * m ) *m ) *m ;</p><p>  a0 = 32140.404 - (135.3302 - (0.7092 - 0.0040 *m ) *m ) *m ;</p><p>  a3 = (0.3333333 + 0.001123 * m ) *m - 0.1666667;</p><p>  a4 =

40、 (0.25 + 0.00252 *m ) *m - 0.04166;</p><p>  a5 = 0.0083 - (0.1667 - (0.1968 + 0.0040 * m ) * m ) * m ;</p><p>  a6 = (0.166 *m - 0.084) * m ;</p><p>  double n = Math.Pow(l, 2);&

41、lt;/p><p>  x = 6367558.4969 * B0 - (a0 - (0.5 + (a4 + a6 * n ) *n ) * n * N) * Math.Sin(B0) * Math.Cos(B0);</p><p>  y = (1 + (a3 + a5 *n ) * n ) * l * N * Math.Cos(B0)+500000;</p><p&g

42、t;  textBox10.Text =x.ToString("0.0000");</p><p>  textBox11.Text =y.ToString("0.0000");</p><p>  /*MessageBox.Show(" B:" + B + "\n" + " B0:" +

43、B0 + "\n" + " B1:" + B1 + "\n" + " cosB0" + Math.Cos(B0) + "\n" + " sinB0" + Math.Sin(B0) + "\n" +</p><p>  "N:" + N + "\n

44、" + "l:" + l + " \n " + " a0: " + a0 + "\n" + " a4: " + a4 + " \n" + " a3 :" + a3 + " \n" + " a6:" + a6 + " \n" + &

45、quot; a5:" + a5 + " \n");</p><p><b>  */ }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  double Bf, B, B3, L,

46、L0, L3, l, β, Z, Nf, b2, b3, b4, b5, ρ, π;</p><p>  int B1, B2, L1, L2;</p><p>  π = 3.141592654;</p><p>  ρ = 180.0 * 3600.0 / π;</p><p><b>  L0 = 126;</b>

47、</p><p>  β = Convert.ToDouble(textBox10.Text) / 6367558.4969;//單位是弧度</p><p>  double m = Math.Pow(Math.Cos(β), 2);</p><p>  Bf = β + (50221746 + (293662 + (2350 + 22 * m ) * m ) *

48、 m ) * Math.Pow(10, -10) * Math.Sin(β) * Math.Cos(β) ;</p><p>  double n = Math.Pow(Math.Cos(Bf), 2);//單位是弧度</p><p>  Nf = 6399698.902 - (21562.267 - (108.973 - 0.612 *n ) * n ) * n ;</p>

49、<p>  Z =( Convert.ToDouble(textBox11.Text)-500000) / (Nf * Math.Cos(Bf));</p><p>  b2 = (0.5 + 0.003369 * n ) * Math.Sin(Bf) * Math.Cos(Bf);</p><p>  b3 = 0.333333 - (0.166667 - 0.001123

50、*n ) *n ;</p><p>  b4 = 0.25 + (0.16161 + 0.00562 *n ) * n ;</p><p>  b5 = 0.2 - (0.1667 - 0.0088 *n ) * n ;</p><p>  B = Bf - (1 - (b4 - 0.12 * Z * Z) * Z * Z) * Z * Z * b2 ;//弧度&l

51、t;/p><p>  B = B * 180.0 / π;//度</p><p>  B1 = (int)B;//度</p><p>  B2 = (int)((B - B1) * 60);//分</p><p>  B3 = B * 3600 - B1 * 3600 - B2 * 60;//秒</p><p>  l =

52、 (1 - (b3 - b5 * Z * Z) * Z * Z) * Z * ρ;//秒</p><p>  l = l / 3600.0;//度</p><p>  L = L0 + l;</p><p>  L1 = (int)L;</p><p>  L2 = (int)((L - L1) * 60);</p><p

53、>  L3 = L * 3600 - L1 * 3600 - L2 * 60;</p><p>  textBox1.Text = Convert.ToString(B1); textBox4.Text =Convert.ToString (L1);</p><p>  textBox2.Text = Convert.ToString(B2); textBox5.Text = Con

54、vert.ToString(L2);</p><p>  textBox3.Text =B3 .ToString ("0.00"); textBox6.Text = L3 .ToString ("0.00");</p><p>  /*MessageBox.Show(" Bf:" + Bf + "\n" + &

55、quot; β ;" + β + "\n " + " Nf ;" + Nf + "\n " + "cos(Bf) ;" + Math.Cos(Bf) + "\n " + "sin( Bf) ;" + Math.Sin(Bf) + "\n "</p><p>  +

56、 "b2 ;" + b2 + "\n " + "b3 ;" + b3 + "\n " + "b4 ;" + b4 + "\n " + "b5;" + b5 + "\n " + "Z ;" + Z + "\n " + " 反算的大

57、地坐標(biāo)B:" + B1 + "°" + B2 + "′" + B3 + "″" + "\n" +" L:" + L1 + "°" + L2 + "′" + L3 + " ″" + "\n");*/</p><p

58、><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  第二題</b></p><p>

59、;  private void button2_Click(object sender, EventArgs e)</p><p><b>  {</b></p><p>  double X1, X2, Y1, Y2, Ym, Y12, Hm, H12, Rm, R1, Bm;</p><p>  double D, S;//斜距和大地線長(zhǎng)&

60、lt;/p><p><b>  double V;</b></p><p>  double a = 6378245.000, b = 6356863.019, c, e1, e2;</p><p>  double k, l,m;</p><p>  //k = Math.Sin(A1);</p><p

61、>  //l = Math.Cos(A1);</p><p>  const double d = 579.5888, π = 3.141592654, B1 = (41 + 40 / 60) * π / 180,B2 =(41+40/60+16/3600)*π / 180;</p><p>  const int H1 = 250, H2 = 280;</p><

62、;p>  X1 = Convert.ToDouble(textBox3.Text);</p><p>  Y1 = Convert.ToDouble(textBox4.Text);</p><p>  X2 = Convert.ToDouble(textBox5.Text);</p><p>  Y2 = Convert.ToDouble(textBox6.T

63、ext);</p><p>  c = a * a / b;</p><p>  e1 = Math.Sqrt(a * a - b * b) / a;</p><p>  e2 = Math.Sqrt(a * a - b * b) / b;</p><p>  //W = Math.Sqrt(1 - e1 * e1 * Math.Sin(B)

64、*Math .Sin(B));</p><p>  Bm =(B1 + B2)/2;</p><p>  V =Math .Sqrt (1+e2 *e2 *Math .Cos(Bm)*Math .Cos(Bm));</p><p>  // M = a * (1 - e * e) / W * W * W;</p><p>  Ym = (Y

65、1 + Y2) / 2; </p><p>  Y12 = Y2 - Y1;</p><p>  Rm = c /( V * V);</p><p>  H12 = H1 - H2;</p><p>  Hm = (H1 + H2) / 2;</p><p>  // m = Y12 / (X2 - X1);<

66、/p><p>  l = Math.Sqrt(1 / (m * m + 1));</p><p>  k = l * m;</p><p>  // k = Math.Cos(B2) * Math.Sqrt(1 + e2 * e2 * Math.Cos(B1) * Math.Cos(B1)) / (Math.Cos(B1) * Math.Sqrt(1 + e2 * e2

67、 * Math.Cos(B2) * Math.Cos(B2)));</p><p>  //A1 =Math .Asin( k) ;</p><p>  // l = Math.Sqrt(1 - k *k );</p><p>  R1 = c / (Math.Sqrt(1 + e2 * e2 * Math.Cos(B1) * Math.Cos(B1)) * (1

68、 + e2 * e2 * Math.Cos(B1) * Math.Cos(B1) * l * l));</p><p>  S = d - H12 * H12 /( 2*d) - d * Hm / R1 + d * d * d /( 24 * R1 * R1 * R1);//大地線長(zhǎng)</p><p>  D = (1 + Ym * Ym /( 2 * Rm * Rm) + Y12 * Y1

69、2 / (24 * Rm * Rm) + Ym * Ym * Ym * Ym / (24 * Rm * Rm * Rm * Rm)) * S;//由大地線求的的斜距</p><p>  MessageBox.Show("R1="+R1 +"\n"+"k="+k +"\n"+"Bm="+Bm+"\n&quo

70、t;+"Rm="+Rm +"\n"+"s="+S +"\n"+"歸算后的距離為D="+ D);</p><p><b>  }</b></p><p><b>  第三題</b></p><p>  public parti

71、al class Form4 : Form</p><p><b>  {</b></p><p>  public Form4()</p><p><b>  {</b></p><p>  InitializeComponent();</p><p>  ae[0].a

72、= 6378245.0000000;//個(gè)即是克拉蘇夫斯基</p><p>  ae[0].e = 0.006693421622966;</p><p><b>  }</b></p><p>  public struct canshu</p><p><b>  {</b></p>

73、<p>  public double a, e;</p><p><b>  }</b></p><p>  public canshu[] ae = new canshu[1];</p><p>  GeomaticsCalculate gc = new GeomaticsCalculate();</p><

74、p>  int flag = 0;</p><p>  private void button1_Click_1(object sender, EventArgs e)</p><p><b>  {</b></p><p>  OpenFileDialog op = new OpenFileDialog();

75、 </p><p>  op.Filter = "正算文件(*.BLAS)|*.BLAS";</p><p>  op.Title = "打開正算文件:";</p><p>  if (op.ShowDialog() == DialogResult.OK)</p><p><b&g

76、t;  {</b></p><p>  gc = new GeomaticsCalculate(op.FileName, flag);</p><p>  gc.a = ae[0].a;</p><p>  gc.e = ae[0].e;</p><p>  this.textBox1.Text = gc.filepath;<

77、;/p><p>  } </p><p><b>  }</b></p><p>  private void button3_Click(object sender, EventArgs e)</p><p><b>  {</b></p><p>  O

78、penFileDialog op = new OpenFileDialog();</p><p>  op.Filter = "反算文件(*.BL2)|*.BL2";</p><p>  op.Title = "打開反算文件:";</p><p>  if (op.ShowDialog() == DialogResult.OK

79、)</p><p><b>  {</b></p><p>  gc = new GeomaticsCalculate(op.FileName, flag);</p><p>  gc.a = ae[0].a;</p><p>  gc.e = ae[0].e;</p><p>  this.te

80、xtBox2.Text = gc.filepath;</p><p><b>  }</b></p><p><b>  }</b></p><p>  private void button2_Click(object sender, EventArgs e)//正算</p><p><b&

81、gt;  {</b></p><p><b>  flag = 1;</b></p><p>  gc.Calculate1();</p><p>  List<double> result1 = new List<double>();</p><p>  for (int i=0;i

82、< gc.C1 .Count ;i++)</p><p><b>  {</b></p><p>  result1.Add(gc.Rt1[i].B2);</p><p>  MessageBox.Show("B2=" + result1[i]);</p><p><b>  } &l

83、t;/b></p><p><b>  }</b></p><p>  private void button4_Click(object sender, EventArgs e)//反算</p><p><b>  {</b></p><p><b>  flag = 2;<

84、/b></p><p>  gc.Calculate();</p><p>  // for (int i = 0; i < gc.C2.Count; i++)</p><p><b>  //{</b></p><p>  // MessageBox.Show("A1:" + gc.

85、hudu2jiaodu(gc.Rt2[i].A1) + "/n" +"A2:"+gc.hudu2jiaodu (gc .Rt2 [i ].A2 )+"/n"+ "S:" + gc.hudu2jiaodu(gc.Rt2[i].S) + "/n");</p><p><b>  // }</b>

86、</p><p><b>  }</b></p><p>  class GeomaticsCalculate</p><p><b>  {</b></p><p>  public struct Collect2</p><p><b>  {</b>

87、;</p><p>  public string qidian, zhongdian;</p><p>  public double B1, B2, L1, L2;//,H1,H2;</p><p>  //public double S;</p><p><b>  }</b></p><p&g

88、t;  public struct Collect1</p><p><b>  {</b></p><p>  public string pname1, pname2;</p><p>  public double B1, L1, A1, S;</p><p><b>  }</b></

89、p><p>  public struct Result1</p><p><b>  {</b></p><p>  public double B2, L2, A2;</p><p><b>  }</b></p><p>  public struct Result2<

90、;/p><p><b>  {</b></p><p>  public double S, A1, A2;</p><p><b>  }</b></p><p>  public string filepath;</p><p>  public List<Collec

91、t1> C1 = new List<Collect1>();</p><p>  public Result1 []Rt1;</p><p>  public List<Collect2> C2 = new List<Collect2>();</p><p>  public Result2[] Rt2;</p>

92、<p>  public double a = 0, e = 0;</p><p>  public GeomaticsCalculate()</p><p><b>  { }</b></p><p>  public double hudu2jiaodu(double hudu)</p><p><

93、;b>  {</b></p><p>  double t = 0, t1 = 0, t2;</p><p>  if (hudu >= 0)</p><p><b>  {</b></p><p>  t1 = t = hudu * 180 / Math.PI;</p><p

94、>  t = Math.Floor(t1);//整度</p><p>  t1 = t1 - t;</p><p>  t2 = t1 = t1 * 60;</p><p>  t1 = Math.Floor(t1);//整分</p><p>  t2 = t2 - t1;</p><p>  t2 = Math

95、.Round(t2 * 60, 4);//保留4位的秒</p><p>  t = t + t1 / 100 + t2 / 10000;</p><p><b>  return t;</b></p><p><b>  }</b></p><p><b>  else</b>

96、</p><p><b>  {</b></p><p>  double temp = Math.Abs(hudu);</p><p>  t1 = t = temp * 180 / Math.PI;</p><p>  t = Math.Floor(t1);//整度</p><p>  t1

97、= t1 - t;</p><p>  t2 = t1 = t1 * 60;</p><p>  t1 = Math.Floor(t1);//整分</p><p>  t2 = t2 - t1;</p><p>  t2 = Math.Round(t2 * 60, 4);//保留4位的秒</p><p>  t = t

98、 + t1 / 100 + t2 / 10000;</p><p>  return -t;</p><p><b>  }</b></p><p><b>  }</b></p><p>  public double du2hudu(double du)</p><p>

99、<b>  {</b></p><p>  double t = 0, t1 = 0, t2 = 0;</p><p>  if (du >= 0)</p><p><b>  {</b></p><p>  t = Math.Floor(du);///正度</p><p&

100、gt;  t1 = Math.Floor((du - t) * 100);///整分</p><p>  t2 = du * 10000 - t * 10000 - t1 * 100;///秒為單位</p><p>  return (t + t1 / 60 + t2 / 3600) / 180 * Math.PI;</p><p><b>  }<

101、/b></p><p><b>  else</b></p><p><b>  {</b></p><p>  double temp = -du;</p><p>  t = Math.Floor(temp);///正度</p><p>  t1 = Math.Fl

102、oor((temp - t) * 100);///整分</p><p>  t2 = temp * 10000 - t * 10000 - t1 * 100;///秒為單位</p><p>  return -(t + t1 / 60 + t2 / 3600) / 180 * Math.PI;</p><p><b>  }</b></p

103、><p><b>  }</b></p><p>  public GeomaticsCalculate(string path, int flag)</p><p><b>  {</b></p><p>  ////////////////////flag=1 白賽爾正算 flag=2 白賽爾反算&

104、lt;/p><p>  filepath = path;</p><p>  if (flag == 1)</p><p><b>  {</b></p><p>  FileStream fs = new FileStream(filepath, FileMode.Open, FileAccess.Read);</p

105、><p>  StreamReader sr = new StreamReader(fs, Encoding.Default);</p><p>  while (sr.Peek() != -1)</p><p><b>  {</b></p><p>  string[] temp = sr.ReadLine().Trim

106、().Split(',');</p><p>  Collect1 c1;</p><p>  c1.pname1 = temp[0];</p><p>  c1.pname2 = temp[1];</p><p>  c1.B1 = du2hudu(Convert.ToDouble(temp[2]));</p>

107、<p>  c1.L1 = du2hudu(Convert.ToDouble(temp[3]));</p><p>  c1.A1 = du2hudu(Convert.ToDouble(temp[4]));</p><p>  c1.S = Convert.ToDouble(temp[5]);</p><p>  C1.Add(c1);</p>

108、;<p><b>  }</b></p><p>  sr.Close();</p><p><b>  }</b></p><p>  if (flag == 2)</p><p><b>  {</b></p><p>  FileSt

109、ream fs = new FileStream(filepath, FileMode.Open, FileAccess.Read);</p><p>  StreamReader sr = new StreamReader(fs, Encoding.Default);</p><p>  while (sr.Peek() != -1)</p><p><b&

110、gt;  {</b></p><p>  string[] temp = sr.ReadLine().Trim().Split(',');</p><p>  Collect2 c2;</p><p>  c2.qidian = temp[0];</p><p>  c2.B1 = du2hudu(Convert.

111、ToDouble(temp[1]));</p><p>  c2.L1 = du2hudu(Convert.ToDouble(temp[2]));</p><p>  string[] temp1 = sr.ReadLine().Trim().Split(',');</p><p>  c2.zhongdian = temp1[0];</p&g

112、t;<p>  c2.B2 = du2hudu(Convert.ToDouble(temp1[1]));</p><p>  c2.L2 = du2hudu(Convert.ToDouble(temp1[2]));</p><p>  C2.Add(c2);</p><p><b>  }</b></p><p

113、>  sr.Close();</p><p><b>  }</b></p><p><b>  }</b></p><p>  public double JudgeAtan(double dy, double dx)//判斷tan的正負(fù)</p><p><b>  {</b

114、></p><p>  double A = Math.Atan(dy / dx);</p><p>  if (dy > 0 && dx > 0)</p><p>  A = Math.Abs(A);</p><p>  else if (dy < 0 && dx > 0)<

115、;/p><p>  A = A + 2 * Math.PI;</p><p>  else if (dx < 0 && dy < 0)</p><p>  A = Math.PI + A;</p><p>  else if (dx < 0 && dy > 0)</p><

116、;p>  A = Math.PI + A;</p><p>  else if (dx == 0 && dy > 0)</p><p>  A = Math.PI / 2;</p><p>  else if (dy < 0 && dx == 0)</p><p>  A = 3 * Math

117、.PI / 2;</p><p><b>  return A;</b></p><p><b>  }</b></p><p>  public void Calculate1()//白塞爾大地主題正算</p><p><b>  {</b></p><

118、p>  Rt1 = new Result1 [C1.Count];</p><p>  for (int i = 0; i < C1.Count; i++)</p><p><b>  {</b></p><p>  double W1 = Math.Sqrt(1 - e * Math.Pow(Math.Sin(C1[i].B

119、1), 2));</p><p>  double sinu1 = Math.Sin(C1[i].B1) * Math.Sqrt(1 - e) / W1;</p><p>  double cosu1 = Math.Cos(C1[i].B1) / W1;</p><p>  double sinA0 = cosu1 * Math.Sin(C1[i].A1);<

120、/p><p>  double cotct1 = cosu1 * Math.Cos(C1[i].A1) / sinu1;</p><p>  double sin2ct1 = 2 * cotct1 / (Math.Pow(cotct1, 2) + 1);</p><p>  double cos2ct1 = (Math.Pow(cotct1, 2) - 1) / (Ma

121、th.Pow(cotct1, 2) + 1);</p><p>  double cosA02 = 1 - Math.Pow(sinA0, 2);</p><p>  double e1 = e / (1 - e);///e1實(shí)則為e'的平方</p><p>  double b = a * Math.Sqrt(1 - e);</p><

122、p>  double k2 = e1 * cosA02;</p><p>  double A = b * (1 + k2 / 4 - 3.0 * k2 * k2 / 64 + 5.0 / 256.0 * k2 * k2 * k2);</p><p>  double B = b * (k2 / 8 - k2 * k2 / 32 + 15.0 / 1024.0 * k2 * k2 *

123、 k2);</p><p>  double C = b * (k2 * k2 / 128 - 3.0 / 512.0 * k2 * k2 * k2);</p><p>  double arf = (e / 2 + Math.Pow(e, 2) / 8 + Math.Pow(e, 3) / 16) - (Math.Pow(e, 2) / 16 + Math.Pow(e, 3) / 16)

124、 * cosA02</p><p>  + (3.0 / 128.0 * Math.Pow(e, 3)) * cosA02 * cosA02;</p><p>  double beta = (Math.Pow(e, 2) / 32 + Math.Pow(e, 3) / 32) * cosA02 - Math.Pow(e, 3) / 64 * cosA02 * cosA02;</p&

125、gt;<p>  double ct0 = (C1[i].S - (B + C * cos2ct1) * sin2ct1) / A;</p><p>  double sin2 = sin2ct1 * Math.Cos(2 * ct0) + cos2ct1 * Math.Sin(2 * ct0);</p><p>  double cos2 = cos2ct1 * Math.

126、Cos(2 * ct0) - sin2ct1 * Math.Sin(2 * ct0);</p><p>  double ct = ct0 + (B + 5 * C * cos2) * sin2 / A;</p><p>  double dt = (arf * ct + beta * (sin2 - sin2ct1)) * sinA0;</p><p>  dou

127、ble sinu2 = sinu1 * Math.Cos(ct) + cosu1 * Math.Cos(C1[i].A1) * Math.Sin(ct);</p><p>  Rt1[i].B2 = Math.Atan(sinu2 / (Math.Sqrt(1 - e) * Math.Sqrt(1 - sinu2 * sinu2)));</p><p>  double lamuda =

128、Math.Atan(Math.Sin(C1[i].A1) * Math.Sin(ct) / (cosu1 * Math.Cos(ct) - sinu1 * Math.Sin(ct) * Math.Cos(C1[i].A1)));</p><p>  if (Math.Sin(C1[i].A1) > 0 && Math.Tan(lamuda) > 0)</p><p&

129、gt;<b>  {</b></p><p>  lamuda = Math.Abs(lamuda);</p><p><b>  }</b></p><p>  if (Math.Sin(C1[i].A1) > 0 && Math.Tan(lamuda) < 0)</p><

130、;p><b>  {</b></p><p>  lamuda = Math.PI - Math.Abs(lamuda);</p><p><b>  }</b></p><p>  if (Math.Sin(C1[i].A1) < 0 && Math.Tan(lamuda) < 0)&l

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論