当前位置:编程学习 > C#/ASP.NET >>

[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# ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,