1、测绘类C#程序代码测绘类C#程序代码常用测量程序设计代码(1)用全站仪在A点观测了B点斜边和垂直角,求A到B的高差。(提示:,D-斜边,-垂直角,-仪器高,-反光镜高,-大气折光系数)using System;using ;namespace ConsoleApplication1 class Application static void Main(string args) (请输入斜边=); double D = (); (请输入垂直角=); double a = DEG(); (请输入仪器高=); double i = (); (请输入反光镜高=); double v = (); dou
2、ble h = D * (a) + (1 - * D / * D / * (a) * (a) / + i - v; (高差为0,h); MainMainMaindd(DEG(str); else break; while (true); i = 1; foreach (double a in 导线转角集合) a0 += a + ; if (a0 2 * a0 -= 2 * ; else if (a0 2 * a0 -= 2 * ; x0 = x0 + 导线边长集合j * (a0); y0 = y0 + 导线边长集合j * (a0); (P0点的坐标是:1,2,j+2,x0,y0); Maind
3、d(str); else break; (请输入第0段高差=, i+); 路线段高差集合.Add(); while (true); ount; j+) w += 路线段高差集合j; 总长度 += 路线段长度集合j; w = w - (Hb - Ha); ount; j+) H += 路线段高差集合j + v * 路线段长度集合j; (P0点的高程是:1,j+1,H); (最后一点就是B点!); (7)在如图所示的前方交会中,ABJ三点按逆时针方向排列,已知AB两点的坐标和两个交会角度,求J点的坐标。using System;using ;namespace ConsoleApplication
4、1 class Application static void Main(string args) (请输入A点的x坐标=); double Ax = (); (请输入A点的y坐标=); double Ay = (); (请输入B点的x坐标=); double Bx = (); (请输入B点的y坐标=); double By = (); (请输入的角度值=); double = DEG(); (请输入的角度值=); double = DEG(); Maindd(str); else break; (请输入第0点的y坐标=,i+); 多边形Y坐标集.Add( (); while (true);
5、ount; for (int j = 0; j Count-1; j+) area += 多边形X坐标集j * 多边形Y坐标集j + 1 - 多边形X坐标集j + 1 * 多边形Y坐标集j; MainEG();差(D, , 仪器高, 反光镜高, out 水平距离); 水平距离平方集合.Add(水平距离 * 水平距离); 高差集合.Add(h); 水平距离平方和 += 水平距离 * 水平距离; 高差和 += h; while (true); ount; j+) H += 高差集合j + 单位长度改正数 * 水平距离平方集合j; (第0点的高程H=1,j+2,H); (最后一个点的高程应该与B点的
6、高程相同!); class 导线 Main位角(MX, MY, AX, AY); List 坐标增量X集合 = new List(); List 坐标增量Y集合 = new List(); int i = 1; double 坐标增量X和 = 0; double 坐标增量Y和 = 0; double 坐标增量X绝对值和 = 0; double 坐标增量Y绝对值和 = 0; double 水平距离和 = 0; do (请输入0点到1点的水平距离S=,i,i+1); string str = (); if (str = ) break; double S = (str); (请输入0点的水平角=,
7、 i); double = 导线.DEG(); i+; 标(0, 0, , S, 0, out dx, out dy); 坐标增量X集合.Add(dx); 坐标增量Y集合.Add(dy); 坐标增量X和 += dx; ; 坐标增量Y和 += dy; ; 坐标增量X绝对值和 += (dx); 坐标增量Y绝对值和 += (dy); 水平距离和 += S; while (true); ount; j+) X += 坐标增量X集合j + X坐标单位长度改正数 * (坐标增量X集合j); Y += 坐标增量Y集合j + Y坐标单位长度改正数 * (坐标增量Y集合j); (第0点的X坐标=1,Y坐标=2,
8、j+2,X,Y); (最后一个点的坐标应该与B点的坐标相同!); class 导线 Main位角(MX, MY, AX, AY); List 坐标增量X集合 = new List(); List 坐标增量Y集合 = new List(); List 高差集合 = new List(); List 水平距离平方集合 = new List(); int i = 1; double 坐标增量X和 = 0; double 坐标增量Y和 = 0; double 坐标增量X绝对值和 = 0; double 坐标增量Y绝对值和 = 0; double 水平距离和 = 0; double 高差和 = 0; d
9、ouble 水平距离平方和 = 0; do (请输入0点到1点的斜距D=, i, i + 1); string str = (); if (str = ) break; double D = (str); (请输入0点的水平角=, i); double = 导线.DEG(); (请输入0点到1点的垂直角=, i, i + 1); double = 导线.DEG();差(D, , 仪器高, 反光镜高, out 水平距离); 水平距离平方集合.Add(水平距离 * 水平距离); 高差集合.Add(h); 水平距离平方和 += 水平距离 * 水平距离; 高差和 += h; 标(0, 0, , 水平距
10、离, 0, out dx, out dy); 坐标增量X集合.Add(dx); 坐标增量Y集合.Add(dy); 坐标增量X和 += dx; ; 坐标增量Y和 += dy; ; 坐标增量X绝对值和 += (dx); 坐标增量Y绝对值和 += (dy); 水平距离和 += 水平距离; while (true); ount; j+) H += 高差集合j + 单位长度改正数 * 水平距离平方集合j; X += 坐标增量X集合j + X坐标单位长度改正数 * (坐标增量X集合j); Y += 坐标增量Y集合j + Y坐标单位长度改正数 * (坐标增量Y集合j); (第0点的X坐标=1,Y坐标=2,高
11、程H=3,j+2,X,Y,H); (最后一个点的坐标和高程应该与B点的坐标和高程相同!); class 导线 Main位角(MX, MY, AX, AY); 位角(BX, BY, NX, NY); List 坐标增量X集合 = new List(); List 坐标增量Y集合 = new List(); List 高差集合 = new List(); List 水平距离平方集合 = new List(); List 方位角集合 = new List(); int i = 1; double 坐标增量X和 = 0; double 坐标增量Y和 = 0; double 坐标增量X绝对值和 = 0;
12、 double 坐标增量Y绝对值和 = 0; double 水平距离和 = 0; double 高差和 = 0; double 水平距离平方和 = 0; double = 0; do (请输入0点到1点的斜距D=, i, i + 1); string str = (); if (str = ) break; double D = (str); (请输入0点的水平角=, i); double = 导线.DEG(); (请输入0点到1点的垂直角=, i, i + 1); double 垂直角 = 导线.DEG();差(D, 垂直角, 仪器高, 反光镜高, out 水平距离); 水平距离平方集合.A
13、dd(水平距离 * 水平距离); 高差集合.Add(h); 水平距离平方和 += 水平距离 * 水平距离; 高差和 += h; 标(0, 0, , 水平距离, , out dx, out dy); 方位角集合.Add(); 坐标增量X集合.Add(dx); 坐标增量Y集合.Add(dy); 坐标增量X和 += dx; ; 坐标增量Y和 += dy; ; 坐标增量X绝对值和 += (dx); 坐标增量Y绝对值和 += (dy); 水平距离和 += 水平距离; while (true); (请输入最后一个连接角=); double n = 导线.DEG(); 位角(方位角集合方位角集合.Count
14、-1,n); ount + 1); lear(); 坐标增量Y集合.Clear(); 坐标增量X和 = 0; 坐标增量Y和 = 0; 坐标增量X绝对值和 = 0; 坐标增量Y绝对值和 = 0; for (int j = 0; j 方位角集合.Count; j+) 方位角集合j += 方位角改正数 * (j + 1); dd(dx); 坐标增量Y集合.Add(dy); 坐标增量X和 += dx; ; 坐标增量Y和 += dy; ; 坐标增量X绝对值和 += (dx); 坐标增量Y绝对值和 += (dy); ount; j+) H += 高差集合j + 单位长度改正数 * 水平距离平方集合j; X
15、 += 坐标增量X集合j + X坐标单位长度改正数 * (坐标增量X集合j); Y += 坐标增量Y集合j + Y坐标单位长度改正数 * (坐标增量Y集合j); (第0点的X坐标=1,Y坐标=2,高程H=3,j+2,X,Y,H); (最后一个点的坐标和高程应该与B点的坐标和高程相同!); class 导线 MainEG(); (请输入B点到N点的坐标方位角=); double 1 = 导线.DEG(); List 方位角集合 = new List(); int i = 1; double = 0; do (请输入0点的水平角直接回车结束输入=, i); string str = (); if
16、(str = ) break; double = 导线.DEG(str); i+; = 导线.方位角(,); 方位角集合.Add(); while (true); ount-1 - 1; double 方位角改正数 = -方位角闭合差 / 方位角集合.Count; ount; j+) 方位角集合j += 方位角改正数 * (j + 1); (0点到1点的坐标方位角=2, j, j + 2, 导线.DMS(方位角集合j); (最后一个坐标方位角应该与B点到N的坐标方位角相同!); class 导线 Main位角(MX, MY, AX, AY); 位角(BX, BY, NX, NY); List
17、坐标增量X集合 = new List(); List 坐标增量Y集合 = new List(); List 水平距离平方集合 = new List(); List 方位角集合 = new List(); int i = 1; double 坐标增量X和 = 0; double 坐标增量Y和 = 0; double 坐标增量X绝对值和 = 0; double 坐标增量Y绝对值和 = 0; double 水平距离和 = 0; double 水平距离平方和 = 0; double = 0; do (请输入0点到1点的平距S=, i, i + 1); string str = (); if (str
18、= ) break; double S = (str); (请输入0点的水平角=, i); double = 导线.DEG(); i+; 水平距离平方集合.Add(S * S); 水平距离平方和 += S * S; 标(0, 0, , S, , out dx, out dy); 方位角集合.Add(); 坐标增量X集合.Add(dx); 坐标增量Y集合.Add(dy); 坐标增量X和 += dx; ; 坐标增量Y和 += dy; ; 坐标增量X绝对值和 += (dx); 坐标增量Y绝对值和 += (dy); while (true); (请输入最后一个连接角=); double n = 导线.DEG(); 位角(方位角集合方位角集合.Count-1,n); ount + 1); lear(); 坐标增量Y集合.Clear(); 坐标增量X和 = 0; 坐标增量Y和 = 0; 坐标增量X绝对值和 = 0; 坐标增量Y绝对值和 = 0; for (int j = 0; j angle = (deltaY, deltaX); if (angle 0) angle += ; if (deltaY = * 2) 方位角 -= * 2; if (方位角 = * 2) 方位角 -= * 2; if (方位角 方位角 += * 2; return 方位角;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1