测绘程序设计——坐标方位角推算(C#)
生活随笔
收集整理的这篇文章主要介绍了
测绘程序设计——坐标方位角推算(C#)
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
已知后一个边的坐标方位角和观测得到的转角推算前一个边的坐标方位角。
若观测角为左角(沿导线前进方向在身体的左侧)α前=α后+β+180°;如果α前>360°则减去360°,如果小于0则加上360°。
若观测角为右角(沿导线前进方向在身体的右侧)α前=α后-β+180°;如果α前>360°则减去360°,如果小于0则加上360°。
运算代码:
double a_1 = Dms2H(Convert.ToDouble(textBox1.Text)); //读取数据double b = Dms2H(Convert.ToDouble(textBox2.Text));//-----------------------选择左角或右角---------------------------//double a_2 = 0;if (radioButton1.Checked) //左角{a_2 = a_1 + b + Math.PI;if (a_2 > 2 * Math.PI){a_2 = a_2 - 2 * Math.PI;}if (a_2 < 0){a_2 = a_2 + 2 * Math.PI;}}if (radioButton2.Checked) //右角{a_2 = a_1 + b - Math.PI;if (a_2 > 2 * Math.PI){a_2 = a_2 - 2 * Math.PI;}if (a_2 < 0){a_2 = a_2 + 2 * Math.PI;}}else{MessageBox.Show("请选择左角或者右角");}//显示textBox3.Text = H2Dms(a_2);度分秒转弧度:
public static double Dms2H(double dms){double Dms = dms + 0.000000001;double Du = Math.Truncate(Dms);double temp = (Dms - Du) * 100;double Fen = Math.Truncate(temp);double Miao = (temp - Fen) * 100 - 0.00001;double Du_1 = Du + Fen / 60.0 + Miao / 3600.0;return Du_1 * Math.PI / 180.0;}弧度转度分秒:
public static string H2Dms(double Hu){double D = Math.Abs(Hu * 180.0 / Math.PI);//将弧度转为度double Du = Math.Truncate(D);double Fen = Math.Truncate((D - Du) * 60);double Miao = Math.Round(((D - Du) * 60 - Fen) * 60, 4);if (Miao == 60){Miao = 0;Fen = Fen + 1;}if (Fen == 60){Fen = 0;Du= Du+ 1;}string Dms = Convert.ToString(Du) + "°" + Convert.ToString(Fen) + "′" + Convert.ToString(Miao) + "″";return Dms;}总结
以上是生活随笔为你收集整理的测绘程序设计——坐标方位角推算(C#)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: spring(4)
- 下一篇: 基于Ethernet KRL,上位机C#