zoukankan      html  css  js  c++  java
  • 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));
            }
  • 相关阅读:
    【矩阵】
    关于集合的思路
    TSQL生成Combguid
    ServiceLocator是反模式
    使用表达式树创建对象
    TeamCity配置笔记
    AutoMapper映射ExpressionTree
    Automapper扩展方法
    Cache&Session Viewer
    Orchard源码:Logging
  • 原文地址:https://www.cnblogs.com/anthonyBlog/p/5725849.html
Copyright © 2011-2022 走看看