POJ1673
垂心:三角形的三条高或其延长线相交于一点,这点称为三角形的垂心。
const double eps = 1e-8 ;
struct point{
double x , y ;
point(){}
point(double x , double y){
this->x = x ;
this->y = y ;
}
};
/*三角形(p0 , p1 , p2)垂心*/
point Orthocenter(point p0, point p1 ,point p2){
double a1,b1,a2,b2,c1,c2;
a1 = p2.x-p1.x , b1=p2.y-p1.y , c1 = 0 ;
a2 = p2.x-p0.x , b2=p2.y-p0.y , c2 = (p1.x-p0.x)*a2+(p1.y-p0.y)*b2 ;
double d = a1 * b2 - a2 * b1;
return point(p0.x+(c1*b2-c2*b1)/d , p0.y+(a1*c2-a2*c1)/d) ;
}
point a[3] ;
int main(){
int i , t ;
cin>>t ;
while(t--){
for(i = 0 ; i < 3 ; i++) scanf("%lf%lf" ,&a[i].x , &a[i].y) ;
point center = Orthocenter(a[0] , a[1] , a[2]) ;
printf("%.4f %.4f\n" , center.x + eps , center.y + eps ) ;
}
return 0 ;
}