三角形垂心

来源:互联网 发布:mac ae 2015 语言包 编辑:程序博客网 时间:2024/04/29 06:24

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 ;}


0 0
原创粉丝点击