C# 三角形外心和外接圆半径计算方法

在网上找了好久,想找一个现成的方法来用,折腾半天发现没有一个好用的,最后迫不得已自己写了一个,需要的同学可以直接拿去用,

 

 private void GetTriangleExcenterRadius(Point A, Point B, Point C, out double R, out Point center)
        {
            //same point
            if (A == B && A == C)
            {
                R = 0;
                center = A;
                return;
            }
            double x1 = A.X, x2 = B.X, x3 = C.X, y1 = A.Y, y2 = B.Y, y3 = C.Y;
            double C1 = Math.Pow(x1, 2) + Math.Pow(y1, 2) - Math.Pow(x2, 2) - Math.Pow(y2, 2);
            double C2 = Math.Pow(x2, 2) + Math.Pow(y2, 2) - Math.Pow(x3, 2) - Math.Pow(y3, 2);
            double centery = (C1 * (x2 - x3) - C2 * (x1 - x2)) / (2 * (y1 - y2) * (x2 - x3) - 2 * (y2 - y3) * (x1 - x2));
            double centerx = (C1 - 2 * centery * (y1 - y2)) / (2 * (x1 - x2));
            center = new Point(centerx, centery);
            R = GetDistance(A, center);
        }

private double GetDistance(Point A, Point B)
        {
            return Math.Sqrt(Math.Pow((A.X - B.X), 2) + Math.Pow((A.Y - B.Y), 2));
        }

 

posted @ 2016-08-01 14:54  仰望星辰  阅读(1543)  评论(0编辑  收藏  举报