/// <summary>

/// 计算两点间的角度

/// </summary>

/// <param name="AOrigin">原点坐标</param>

/// <param name="APoint">参考点坐标</param>

/// <param name="APoint">离心率</param>

/// <returns>返回两点间的角度</returns>

private double PointToAngle(Point AOrigin, Point APoint, double AEccentricity)

{

   if (APoint.X == AOrigin.X)

       if (APoint.Y > AOrigin.Y)

           return Math.PI * 0.5;

       else return Math.PI * 1.5;

   else if (APoint.Y == AOrigin.Y)

       if (APoint.X > AOrigin.X)

           return 0;

       else return Math.PI;

   else

    {

       double Result = Math.Atan((AOrigin.Y - APoint.Y) /

            (AOrigin.X - APoint.X) * AEccentricity);

       if ((APoint.X < AOrigin.X) && (APoint.Y > AOrigin.Y))

           return Result + Math.PI;

       else if ((APoint.X < AOrigin.X) && (APoint.Y < AOrigin.Y))

           return Result + Math.PI;

       else if ((APoint.X > AOrigin.X) && (APoint.Y < AOrigin.Y))

           return Result + 2 * Math.PI;

       else return Result;

    }

} /* PointToAngle */

相关文章:

  • 2021-07-07
  • 2022-12-23
  • 2022-12-23
  • 2022-01-12
  • 2021-09-25
  • 2022-12-23
  • 2021-11-12
  • 2021-11-27
猜你喜欢
  • 2022-12-23
  • 2021-06-04
  • 2022-12-23
  • 2022-12-23
  • 2022-01-27
  • 2022-12-23
相关资源
相似解决方案