程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> [C#]快速求出三點之間的夾角

[C#]快速求出三點之間的夾角

編輯: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)));
        }

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved