![](https://csdnimg.cn/release/download_crawler_static/86046743/bg7.jpg)
else
{
break;
}
Console.Write("请输入第{0}条边长值=”, i++);
导线边长集合.Add( double。Parse(Console。ReadLine()));
} while (true);
//计算M到A的坐标方位角
double a0 = 方位角(Mx, My, Ax, Ay);
//计算每个点的坐标
double x0 = Ax;
double y0 = Ay;
for (int j = 0; j 〈 导线转角集合.Count; j++)
{
a0 += 导线转角集合[j] + Math。PI;
if (a0 > 2 * Math.PI) a0 -= 2 * Math.PI;
x0 = x0 + 导线边长集合[j] * Math。Cos(a0);
y0 = y0 + 导线边长集合[j] * Math.Sin(a0);
Console。WriteLine("P{0}点的坐标是:{1},{2}”,j+2,x0,y0);
}
}
//将ddd。mmss转为弧度
staticpublicdouble 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;
}
//计算方位角,返回弧度值
publicstaticdouble 方位角(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;