测绘程序设计——坐标方位角推算(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)
- 下一篇: 忘不了手机随身私密管家神器在手密码无忧!
