测绘用到的代码
测绘常用代码包括以下几类:
角度转换代码
将角度从度分秒转换为弧度:
```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点的坐标: