[C#]快速求出三點之間的夾角
阿新 • • 發佈:2019-02-19
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))); }