[模板] 外心公式

  在交大的時候聽社長和OTOTOT說的時候就想說也要來寫一個了,然後剛剛遇到一題要用得但我一直寫不出來所以就索性先來寫模板了XD
  有點覺得要整理一下標籤了,感覺好亂@@

class circumcenter{
    public:
        inline double three(double a1,double a2,double a3,double a4,double a5,double a6,double a7,double a8,double a9)
        {
            return a1*a5*a9+a2*a6*a7+a3*a4*a8-a3*a5*a7-a6*a8*a1-a9*a2*a4;
        }
        inline pair<double,double> center(pair<double,double> a,pair<double,double> b,pair<double,double> c)
        {
            double rr = three(a.first,a.second,1,b.first,b.second,1,c.first,c.second,1);
            double x = three(a.first*a.first+a.second*a.second,a.second,1,b.first*b.first+b.second*b.second,b.second,1,c.first*c.first+c.second*c.second,c.second,1);
            double y = three(a.first,a.first*a.first+a.second*a.second,1,b.first,b.first*b.first+b.second*b.second,1,c.first,c.first*c.first+c.second*c.second,1);
            if(abs(rr) < 1e-9) return {1e9,1e9};
            return {x/rr/2,y/rr/2};
        }
        inline double dis(pair<double,double> a,pair<double,double> b)
        {
            return hypot(a.first-b.first,a.second-b.second);
        }
};

留言

這個網誌中的熱門文章

Shellshock.io從入門到上手(針對單狙)(沒有圖片、影片版本)

[TIOJ] 1007燈泡問題