/// <summary>

      /// 两点计算角度

      /// </summary>

      /// <param name="startx"></param>

      /// <param name="starty"></param>

      /// <param name="endx"></param>

      /// <param name="endy"></param>

      /// <returns></returns>

      public static double CalulateXYAnagle(double startx, double starty, double endx, double endy)

      {

                              //除数不能为0

          double tan = Math.Atan(Math.Abs((endy - starty) / (endx - startx))) * 180 / Math.PI;

          if (endx > startx && endy > starty)//第一象限

          {

              return -tan;

          }

          else if (endx > startx && endy < starty)//第二象限

          {

              return tan;

          }

          else if (endx < startx && endy > starty)//第三象限

          {

              return tan - 180;

          }

          else

          {

              return 180 - tan;

          }

}



​/// <summary>​​​​​​​​/// 计算旋转角度​​​​​​​​/// </summary>​​​​​​​​/// <param name="nowpoint"></param>​​​​​​​​/// <returns></returns>​​​​​​​​public​​​​double​​​​ComputeAngle(Point nowpoint)​​​​​​​​{​​​​​​​​//斜边长度​​​​​​​​double​​​​length = PointLegth(nowpoint, CentPoint);​​​​​​​​//对边比斜边 sin​​​​​​​​double​​​​hudu = Math.Asin(Math.Abs(nowpoint.Y - CentPoint.Y)/length);​​​​​​​​double​​​​ag = hudu*180/Math.PI;​​​​​​​​//第一象限90-​​​​​​​​if​​​​((CentPoint.X - nowpoint.X) <= 0 && (CentPoint.Y - nowpoint.Y) >= 0)​​​​​​​​ag = 90 - ag;​​​​​​​​//第二象限90+​​​​​​​​else​​​​if​​​​((CentPoint.X - nowpoint.X) <= 0 && (CentPoint.Y - nowpoint.Y) <= 0)​​​​​​​​ag = ag + 90;​​​​​​​​//第三象限270-​​​​​​​​else​​​​if​​​​((CentPoint.X - nowpoint.X) >= 0 && (CentPoint.Y - nowpoint.Y) <= 0)​​​​​​​​ag = 270 - ag;​​​​​​​​//第四象限270+​​​​​​​​else​​​​if​​​​((CentPoint.X - nowpoint.X) >= 0 && (CentPoint.Y - nowpoint.Y) >= 0)​​​​​​​​ag = ag + 270;​​​​​​​​//偏移​​​​​​​​ag -= 235;​​​​​​​​return​​​​ag;​​​​​​​​}​​​​​​​​/// <summary>​​​​​​​​/// 计算两点间距离​​​​​​​​/// </summary>​​​​​​​​/// <param name="pa"></param>​​​​​​​​/// <param name="pb"></param>​​​​​​​​/// <returns></returns>​​​​​​​​public​​​​double​​​​PointLegth(Point pa, Point pb)​​​​​​​​{​​​​​​​​return​​​​Math.Sqrt(Math.Pow((pa.X - pb.X), 2) + Math.Pow((pa.Y - pb.Y), 2));​​​​​​​​}​