shilvyan  
 1         /// <summary>
 2         /// 计算方位角,从某点的指北方向线起,依顺时针方向到目标方向线之间的水平夹角。
 3         /// </summary>
 4         /// <param name="gcdStart"></param>
 5         /// <param name="gcdEnd"></param>
 6         /// <returns></returns>
 7         public const double PI = 3.1415926;//定义常量PI
 8         public string CalDmFWJ(GCD gcdStart, GCD gcdEnd)
 9         {
10             double dmfwj = 0.0;//断面方位角
11             double dx = gcdEnd.GcdY - gcdStart.GcdY;
12             double dy = gcdEnd.GcdX - gcdStart.GcdX;
13             double jiao = 0;
14             jiao = Math.Abs((gcdEnd.GcdY - gcdStart.GcdY) / (gcdEnd.GcdX - gcdStart.GcdX));
15             //四个象限,四种不同的情况
16             if (dx >= 0 && dy >= 0)
17             {
18                 dmfwj = Math.Atan(jiao);
19             }
20             if (dx < 0 && dy > 0)
21             {
22                 dmfwj = 2 * PI - Math.Atan(jiao);
23 
24             }
25             if (dx <= 0 && dy <= 0)
26             {
27                 dmfwj = Math.Atan(jiao) + PI;
28 
29             }
30             if (dx > 0 && dy < 0)
31             {
32                 dmfwj = PI - Math.Atan(jiao);
33             }
34             dmfwj = dmfwj / PI * 180;//弧度转角度
35             //转换为度   分   秒
36             return Math.Floor(((dmfwj - Math.Floor(dmfwj)) * 60 - Math.Floor((dmfwj - Math.Floor(dmfwj)) * 60)) * 60).ToString();
37         }

 

posted on 2013-05-09 14:44  shilvyan  阅读(760)  评论(1编辑  收藏  举报