1. 程式人生 > >C# 已知三點求 三點之間夾角角度

C# 已知三點求 三點之間夾角角度

  1. public static double Angle(Point cen, Point first, Point second)  
  2. {  
  3.     const double M_PI = 3.1415926535897  ;  
  4.   
  5.     double ma_x = first.X - cen.X;  
  6.     double ma_y = first.Y - cen.Y;  
  7.     double mb_x = second.X - cen.X;  
  8.     double mb_y = second.Y - cen.Y;  
  9.     double
     v1 = (ma_x * mb_x) + (ma_y * mb_y);  
  10.     double ma_val = Math.Sqrt(ma_x * ma_x + ma_y * ma_y);  
  11.     double mb_val = Math.Sqrt(mb_x * mb_x + mb_y * mb_y);  
  12.     double cosM = v1 / (ma_val * mb_val);  
  13.     double angleAMB = Math.Acos(cosM) * 180 / M_PI;  
  14.   
  15.     return angleAMB;