测绘用到的代码

测绘常用代码包括以下几类:

角度转换代码

将角度从度分秒转换为弧度:

```csharp

define PI 3.14159265

double AngleToRadian(double angle) {

int D, M;

double S, radian, degree, angle, MS;

D = int(angle + 0.3);

MS = angle - D;

M = int((MS) * 100 + 0.3);

S = (MS * 100 - M) * 100;

degree = D + M / 60.0 + S / 3600.0;

radian = degree * PI / 180.0;

return radian;

}

```

将弧度转换为角度:

```csharp

double RadianToAngle(double radian) {

int D, M;

double S, radian, degree, MS, angle;

degree = radian * 180 / PI;

D = int(degree);

MS = degree - D;

M = int(MS * 60);

S = (MS * 60 - M) * 60;

angle = D + M / 100.0 + S / 10000.0;

return angle;

}

```

坐标计算代码

计算B点坐标(已知A点坐标和方位角):

```csharp

using System;

Console.Write("请输入A点的Y坐标=");

double YA = double.Parse(Console.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点的坐标({0},{1})", XB, YB);

```

高差计算代码

用全站仪观测B点斜边和垂直角,求A到B的高差:

```csharp

using System;

using System.Collections.Generic;

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 = 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.WriteLine("高差为{0}", h);

}

}

}

```

全站仪观测和前方交会代码

在前方交会中,已知AB两点的坐标和两个交会角度,求J点的坐标: