




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、常用測量程序設(shè)計(jì)代碼(1)用全站儀在A點(diǎn)觀測了B點(diǎn)斜邊和垂直角,求A到B的高差。(提示:,D-斜邊,-垂直角,-儀器高,-反光鏡高,-大氣折光系數(shù))using System;usingic;using System.Text;namespace ConsoleApplication1 class Application static void Main(string args) Console.Write(請輸入斜邊=); double D = double.Parse(Console.ReadLine(); Console.Write(請輸入垂直角ddd.mmss=); double a =
2、 DEG(double.Parse(Console.ReadLine(); Console.Write(請輸入儀器高=); double i = double.Parse(Console.ReadLine(); Console.Write(請輸入反光鏡高=); double v = double.Parse(Console.ReadLine(); double h = D * Math.Sin(a) + (1 - 0.13) * D / 6371000.0 * D / 6371000.0 * Math.Cos(a) * Math.Cos(a) / 2.0 + i - v; Console.Wr
3、iteLine(高差為0,h); /將ddd.mmss轉(zhuǎn)為弧度 static public double DEG(double ang) int fuhao = (int)(ang / Math.Abs(ang); ang = Math.Abs(ang); int d = (int)ang; int m = (int)(ang * 100) - d * 100; double s = ang * 10000 - m * 100 - d * 10000; return (d + m / 60.0 + s / 3600.0) * fuhao) / 180.0 * Math.PI; (2)如圖所示,
4、已知A點(diǎn)的坐標(biāo)及A點(diǎn)到B點(diǎn)的邊長及方位角,計(jì)算B點(diǎn)的坐標(biāo)。using System;using System.Collections.Generic;using System.Text;namespace ConsoleApplication1 class Application static void Main(string args) Console.Write(請輸入A點(diǎn)的X坐標(biāo)=); double XA = double.Parse(Console.ReadLine(); Console.Write(請輸入A點(diǎn)的Y坐標(biāo)=); double YA = double.Parse(Conso
5、le.ReadLine(); Console.Write(請輸入A到B的方位角ddd.mmss=); double a = DEG(double.Parse(Console.ReadLine(); Console.Write(請輸入A到B的水平距離=); double S = double.Parse(Console.ReadLine(); double XB = XA + S*Math.Cos(a); double YB = YA + S*Math.Sin(a); Console.WriteLine(B點(diǎn)的坐標(biāo)(0,1),XB,YB); /將ddd.mmss轉(zhuǎn)為弧度 static publi
6、c double DEG(double ang) int fuhao = (int)(ang / Math.Abs(ang); ang = Math.Abs(ang); int d = (int)ang; int m = (int)(ang * 100) - d * 100; double s = ang * 10000 - m * 100 - d * 10000; return (d + m / 60.0 + s / 3600.0) * fuhao) / 180.0 * Math.PI; (3)如圖所示,已知A點(diǎn)和B點(diǎn)的坐標(biāo),計(jì)算A點(diǎn)到的邊長及方位角。using System;using S
7、ystem.Collections.Generic;using System.Text;namespace ConsoleApplication1 class Application static void Main(string args) Console.Write(請輸入A點(diǎn)的X坐標(biāo)=); double XA = double.Parse(Console.ReadLine(); Console.Write(請輸入A點(diǎn)的Y坐標(biāo)=); double YA = double.Parse(Console.ReadLine(); Console.Write(請輸入B點(diǎn)的X坐標(biāo)=); double
8、XB = double.Parse(Console.ReadLine(); Console.Write(請輸入B點(diǎn)的Y坐標(biāo)=); double YB = double.Parse(Console.ReadLine(); double S = 距離(XA, YA, XB, YB); double a = 方位角(XA, YA, XB, YB); Console.WriteLine(AB間的距離=0,從A到B的方位角=1,S,DMS(a); /將弧度轉(zhuǎn)為ddd.mmss static public double DMS(double ang) ang += 1.0E-15;/加上一個(gè)小量,以保證進(jìn)
9、位 int fuhao = (int)(ang / Math.Abs(ang); ang = Math.Abs(ang) * 180.0 / Math.PI; int d = (int)ang; ang = (ang - d) * 60.0; int m = (int)ang; double s = (ang - m) * 60.0; return (d + m / 100.0 + s / 10000.0) * fuhao; /計(jì)算方位角,返回弧度值 public static double 方位角(double x1, double y1, double x2, double y2) dou
10、ble deltaX = x2 - x1; double deltaY = y2 - y1; double angle = Math.PI * 0.5; if (Math.Abs(deltaX) 0.000000001) angle = Math.Atan2(deltaY, deltaX); if (angle 0) angle += Math.PI; if (deltaY 2 * Math.PI) a0 -= 2 * Math.PI; List 導(dǎo)線轉(zhuǎn)角集合 = new List(); int i = 1; do Console.Write(請輸入第0個(gè)轉(zhuǎn)角的水平角左角為正,右角為負(fù) =,i
11、+); string str = Console.ReadLine(); if (str != ) 導(dǎo)線轉(zhuǎn)角集合.Add(DEG(double.Parse(str); else break; while (true); i = 1; foreach (double a in 導(dǎo)線轉(zhuǎn)角集合) a0 += a + Math.PI; if (a0 2 * Math.PI) a0 -= 2 * Math.PI; else if (a0 0.0) a0 += 2 * Math.PI; Console.WriteLine(第0條邊的方位角為1,i+,DMS(a0); /將弧度轉(zhuǎn)為ddd.mmss stat
12、ic public double DMS(double ang) ang += 1.0E-15;/加上一個(gè)小量,以保證進(jìn)位 int fuhao = (int)(ang / Math.Abs(ang); ang = Math.Abs(ang) * 180.0 / Math.PI; int d = (int)ang; ang = (ang - d) * 60.0; int m = (int)ang; double s = (ang - m) * 60.0; return (d + m / 100.0 + s / 10000.0) * fuhao; /將ddd.mmss轉(zhuǎn)為弧度 static pub
13、lic double DEG(double ang) int fuhao = (int)(ang / Math.Abs(ang); ang = Math.Abs(ang); int d = (int)ang; int m = (int)(ang * 100) - d * 100; double s = ang * 10000 - m * 100 - d * 10000; return (d + m / 60.0 + s / 3600.0) * fuhao) / 180.0 * Math.PI; (5)在如圖所示的支中導(dǎo)線,已知A點(diǎn)和M點(diǎn)的坐標(biāo)及每個(gè)左角和每條邊長,求每個(gè)點(diǎn)的坐標(biāo)。using S
14、ystem;using System.Collections.Generic;using System.Text;namespace ConsoleApplication1 class Application static void Main(string args) Console.Write(請輸入M點(diǎn)的x坐標(biāo)=); double Mx = double.Parse(Console.ReadLine(); Console.Write(請輸入M點(diǎn)的y坐標(biāo)=); double My = double.Parse(Console.ReadLine(); Console.Write(請輸入A點(diǎn)的x
15、坐標(biāo)=); double Ax = double.Parse(Console.ReadLine(); Console.Write(請輸入A點(diǎn)的y坐標(biāo)=); double Ay = double.Parse(Console.ReadLine(); List 導(dǎo)線轉(zhuǎn)角集合 = new List(); List 導(dǎo)線邊長集合 = new List(); int i = 1; do Console.Write(請輸入第0個(gè)轉(zhuǎn)角的水平角左角為正,右角為負(fù)=,i); string str = Console.ReadLine(); if (str != ) 導(dǎo)線轉(zhuǎn)角集合.Add(DEG(double.Pa
16、rse(str); else break; Console.Write(請輸入第0條邊長值=, i+); 導(dǎo)線邊長集合.Add( double.Parse(Console.ReadLine(); while (true); /計(jì)算M到A的坐標(biāo)方位角 double a0 = 方位角(Mx, My, Ax, Ay); /計(jì)算每個(gè)點(diǎn)的坐標(biāo) double x0 = Ax; double y0 = Ay; for (int j = 0; j 2 * Math.PI) a0 -= 2 * Math.PI; x0 = x0 + 導(dǎo)線邊長集合j * Math.Cos(a0); y0 = y0 + 導(dǎo)線邊長集合
17、j * Math.Sin(a0); Console.WriteLine(P0點(diǎn)的坐標(biāo)是:1,2,j+2,x0,y0); /將ddd.mmss轉(zhuǎn)為弧度 static public double DEG(double ang) int fuhao = (int)(ang / Math.Abs(ang); ang = Math.Abs(ang); int d = (int)ang; int m = (int)(ang * 100) - d * 100; double s = ang * 10000 - m * 100 - d * 10000; return (d + m / 60.0 + s / 3
18、600.0) * fuhao) / 180.0 * Math.PI; /計(jì)算方位角,返回弧度值 public static double 方位角(double x1, double y1, double x2, double y2) double deltaX = x2 - x1; double deltaY = y2 - y1; double angle = Math.PI * 0.5; if (Math.Abs(deltaX) 0.000000001) angle = Math.Atan2(deltaY, deltaX); if (angle 0) angle += Math.PI; if
19、 (deltaY 0.0) angle += Math.PI; return angle; (6)在如圖所示的單一附合水準(zhǔn)路線中,已知A點(diǎn)和B點(diǎn)的高程及每段的長度和高差,求每個(gè)點(diǎn)的高程。using System;using System.Collections.Generic;using System.Text;namespace ConsoleApplication1 class Application static void Main(string args) Console.Write(請輸入A點(diǎn)的高程=); double Ha = double.Parse(Console.ReadLi
20、ne(); Console.Write(請輸入B點(diǎn)的高程=); double Hb = double.Parse(Console.ReadLine(); List 路線段長度集合 = new List(); List 路線段高差集合 = new List(); int i = 1; do Console.Write(請輸入第0段長度公里為單位=,i); string str = Console.ReadLine(); if (str != ) 路線段長度集合.Add(double.Parse(str); else break; Console.Write(請輸入第0段高差=, i+); 路線段
21、高差集合.Add(double.Parse(Console.ReadLine(); while (true); /計(jì)算水準(zhǔn)路線閉合差 double w = 0; double 總長度 = 0; for (int j = 0; j 路線段長度集合.Count; j+) w += 路線段高差集合j; 總長度 += 路線段長度集合j; w = w - (Hb - Ha); /閉合差 double v = -w / 總長度; /每公里改正數(shù) /計(jì)算每個(gè)點(diǎn)的高程 double H = Ha; for (int j = 0; j 0.000000001) angle = Math.Atan2(deltaY
22、, deltaX); if (angle 0) angle += Math.PI; if (deltaY 0.0) angle += Math.PI; return angle; /計(jì)算距離 public static double 距離(double x1, double y1, double x2, double y2) return Math.Sqrt(x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1); (8)在如圖所示的單個(gè)多邊形中,已知每個(gè)點(diǎn)的坐標(biāo),求多邊形的面積。提示面積的計(jì)算公式為:using System;using System.Col
23、lections.Generic;using System.Text;namespace ConsoleApplication1 class Application static void Main(string args) List 多邊形X坐標(biāo)集 = new List(); List 多邊形Y坐標(biāo)集 = new List(); int i = 1; do Console.Write(請輸入第0點(diǎn)的x坐標(biāo)=,i); string str = Console.ReadLine(); if (str != ) 多邊形X坐標(biāo)集.Add(double.Parse(str); else break;
24、Console.Write(請輸入第0點(diǎn)的y坐標(biāo)=,i+); 多邊形Y坐標(biāo)集.Add( double.Parse(Console.ReadLine(); while (true); /計(jì)算面積 double area = 0; /點(diǎn)的個(gè)數(shù) int Count = 多邊形X坐標(biāo)集.Count; for (int j = 0; j Count-1; j+) area += 多邊形X坐標(biāo)集j * 多邊形Y坐標(biāo)集j + 1 - 多邊形X坐標(biāo)集j + 1 * 多邊形Y坐標(biāo)集j; /計(jì)算最后一點(diǎn)到起點(diǎn)的項(xiàng) area += 多邊形X坐標(biāo)集Count - 1 * 多邊形Y坐標(biāo)集0 - 多邊形X坐標(biāo)集0 * 多
25、邊形Y坐標(biāo)集Count - 1; Console.WriteLine(多邊形的面積=0,Math.Abs(area * 0.5); (9)在如圖所示的僅有一個(gè)連接角的附合導(dǎo)線中,已知A點(diǎn)和B點(diǎn)的高程及每條邊的斜邊、垂直角、儀器高和反光鏡高,求每個(gè)點(diǎn)的高程。(提示:,D-斜邊,-垂直角,-儀器高,-反光鏡高,-大氣折光系數(shù))using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 導(dǎo)線 class Program static void Main(string args)
26、 Console.Write(請輸入A點(diǎn)的高程=); double HA = double.Parse(Console.ReadLine(); Console.Write(請輸入B點(diǎn)的高程=); double HB = double.Parse(Console.ReadLine(); List 高差集合 = new List(); List 水平距離平方集合 = new List(); int i = 1; double 高差和 = 0; double 水平距離平方和 = 0; do Console.Write(請輸入0點(diǎn)到1點(diǎn)的斜距D=,i,i+1); string str = Consol
27、e.ReadLine(); if (str = ) break; double D = double.Parse(str); Console.Write(請輸入0點(diǎn)到1點(diǎn)的垂直角=, i, i + 1); double = 導(dǎo)線.DEG(double.Parse(Console.ReadLine();/并化為弧度 Console.Write(請輸入0的儀器高=, i); double 儀器高 = double.Parse(Console.ReadLine(); Console.Write(請輸入0的反光鏡高=, i+1); double 反光鏡高 = double.Parse(Console.
28、ReadLine(); i+; double 水平距離; double h = 導(dǎo)線.高差(D, , 儀器高, 反光鏡高, out 水平距離); 水平距離平方集合.Add(水平距離 * 水平距離); 高差集合.Add(h); 水平距離平方和 += 水平距離 * 水平距離; 高差和 += h; while (true); /計(jì)算高差閉合差 double 高差閉合差 = HA + 高差和 - HB; /計(jì)算單位長度改正數(shù),三角高程的權(quán)與距離的平方成反比 double 單位長度改正數(shù) = -高差閉合差 / 水平距離平方和; /計(jì)算每點(diǎn)高程 double H = HA; for (int j = 0;
29、 j 高差集合.Count; j+) H += 高差集合j + 單位長度改正數(shù) * 水平距離平方集合j; Console.WriteLine(第0點(diǎn)的高程H=1,j+2,H); Console.WriteLine(最后一個(gè)點(diǎn)的高程應(yīng)該與B點(diǎn)的高程相同!); class 導(dǎo)線 /將ddd.mmss轉(zhuǎn)為弧度 static public double DEG(double ang) int fuhao = (int)(ang / Math.Abs(ang); ang = Math.Abs(ang); int d = (int)ang; int m = (int)(ang * 100) - d * 1
30、00; double s = ang * 10000 - m * 100 - d * 10000; return (d + m / 60.0 + s / 3600.0) * fuhao) / 180.0 * Math.PI; /高差計(jì)算,返回高差 public static double 高差(double 斜距,double 垂直角,double 儀器高,double 反光鏡高,out double 水平距離) double h = 斜距 * Math.Sin(垂直角) + 斜距 * Math.Cos(垂直角) / 6371000.0 * 斜距 * Math.Cos(垂直角) * (1 - 0.13) + 儀器高 - 反光鏡高; 水平距離 = 斜距*Math.Cos(垂直角); return h; (10)在如圖所示的僅有一個(gè)連接角的附合導(dǎo)線中,已知M點(diǎn)、A點(diǎn)和B點(diǎn)的坐標(biāo),每個(gè)點(diǎn)的左角及每條邊的水平距離,求每個(gè)點(diǎn)的坐標(biāo)。using System;using System.Collections.Generic;using System.Text;namespace 導(dǎo)線 class Program static void Main(string args) Console.Write(請輸入M點(diǎn)的X坐標(biāo)=); double MX
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度金融投資策略財(cái)務(wù)顧問合同
- 職業(yè)經(jīng)理人2025年度企業(yè)社會(huì)責(zé)任管理與實(shí)施合同
- 2025年度演員安全保險(xiǎn)與風(fēng)險(xiǎn)轉(zhuǎn)移服務(wù)合同
- 2025年中國大葉檀京二胡套料市場調(diào)查研究報(bào)告
- 2025年中國多功能雙面貼標(biāo)機(jī)市場調(diào)查研究報(bào)告
- 2025年中國利福昔明片市場調(diào)查研究報(bào)告
- 舞蹈商演合同范本
- 中小學(xué)校春季開學(xué)典禮活動(dòng)方案:90%的學(xué)校都做錯(cuò)了!這才是開學(xué)典禮的終極打開方式
- 中國碲市場發(fā)展?fàn)顩r及前景態(tài)勢預(yù)測報(bào)告2025-2030年
- 施工中環(huán)保合同范本
- 車間主任考核表實(shí)用文檔
- 提高領(lǐng)導(dǎo)干部的溝通能力
- 《航空公司服務(wù)質(zhì)量改善研究8800字(論文)》
- GB/T 9124-2010鋼制管法蘭技術(shù)條件
- GB/T 4117-2008工業(yè)用二氯甲烷
- FZ/T 07019-2021針織印染面料單位產(chǎn)品能源消耗限額
- 人教PEP版英語五年級(jí)下冊第四單元全部課件
- 硬筆書法 社團(tuán)教案
- 中國膿毒癥及膿毒性休克急診治療指南
- 工序標(biāo)準(zhǔn)工時(shí)及產(chǎn)能計(jì)算表
- 人教版體育與健康四年級(jí)-《障礙跑》教學(xué)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論