[模板] 外心公式
在交大的時候聽社長和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); } };
留言
張貼留言