[C#]快速求出三点之间的夹角
public static double Angle(Point cen, Point first, Point second)
{
const double M_PI = 3.1415926535897 ;
double ma_x = first.X - cen.X;
double ma_y = first.Y - cen.Y;
double mb_x = second.X - cen.X;
double mb_y = second.Y - cen.Y;
double v1 = (ma_x * mb_x) + (ma_y * mb_y);
double ma_val = Math.Sqrt(ma_x * ma_x + ma_y * ma_y);
double mb_val = Math.Sqrt(mb_x * mb_x + mb_y * mb_y);
double cosM = v1 / (ma_val * mb_val);
double angleAMB = Math.Acos(cosM) * 180 / M_PI;
return angleAMB;
}
private void button1_Click(object sender, RoutedEventArgs e)
{
System.Windows.Point button2Point = new System.Windows.Point(0, 0);
System.Windows.Point button3Point = new System.Windows.Point(0, 5);
System.Windows.Point button4Point = new System.Windows.Point(2, 5);
System.Windows.MessageBox.Show(string.Format("{0}", Angle(button3Point, button2Point, button4Point)));
}
补充:软件开发 , C# ,