#include <cstdio>
#include <iostream>
#include <algorithm>
#include <complex>
using namespace std;
//#define e 2.718281828459
typedef complex<double> point;
typedef point Vector;
double Dot(Vector a,Vector b){return real(conj(a)*b);}
double Cross(Vector a,Vector b){return imag(conj(a)*b); }
Vector Rotate(Vector a,double rad){ return a*exp(point(0,rad));}
point read_point(){
double x,y;
scanf("%lf %lf",&x,&y);
return point(x,y);
}
double length(Vector A){
return sqrt(Dot(A,A));
}
double angle(Vector A,Vector B){
return acos(Dot(A,B)/length(A)/length(B));
}
point GetLineIntersection(point a,Vector v,point b,Vector w){
Vector u=a-b;
double t=Cross(w,u)/Cross(v,w);
return a+v*t;
}
point cal_(point& a,point& b,point& c){
Vector u=c-b;
double rad=angle(a-b,u);
Vector u_=Rotate(u,rad/3);
Vector v=b-c;
double rad2=angle(a-c,v);
Vector v_=Rotate(v,-rad2/3);
return GetLineIntersection(b,u_,c,v_);
}
int main()
{
// cout<<angle(point(0,8),point(6,0));
point a,b,c,d,e,f;
int T;
scanf("%d",&T);
while(T--){
a=read_point();
b=read_point();
c=read_point();
d=cal_(a,b,c);
e=cal_(b,c,a);
f=cal_(c,a,b);
printf("%.6lf %.6lf %.6lf %.6lf %.6lf %.6lf\n",real(d),imag(d),real(e),imag(e),real(f),imag(f));
}
return 0;
}
uva-11178 Morley's Theorem
最新推荐文章于 2018-07-20 19:43:09 发布