可以证明O是三角形ABC的垂心。
作图辅助线,一个很重要的技巧是延长中线等中线。
可以证明三角形DNA全等于ABC。然后通过角度变换容易证明AQ垂直于BC。
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std; struct point{
double x,y;
}A,B,C; const int inf=10000000; int main(){
int t; double k1,k2,b1,b2,Ax,Ay;
cin>>t;
while(t--){
cin>>A.x>>A.y;
cin>>B.x>>B.y;
cin>>C.x>>C.y;
if(A.x==B.x){
k1=0; Ay=C.y; b1=C.y;
}
else if(A.y==B.y){
k1=inf; Ax=C.x;
}
else{
k1=(A.y-B.y)/(A.x-B.x);
k1=-1/k1;
b1=C.y-k1*C.x;
}
if(A.x==C.x){
k2=0; Ay=B.y; b2=B.y;
}
else if(A.y==C.y){
k2=inf; Ax=B.x;
}
else{
k2=(A.y-C.y)/(A.x-C.x);
k2=-1/k2;
b2=B.y-k2*B.x;
}
if(k1==inf){
Ay=k2*Ax+b2;
}
else if(k2==inf){
Ay=k1*Ax+b1;
}
else{
Ax=(b2-b1)/(k1-k2);
Ay=k2*Ax+b2;
}
printf("%.4lf %.4lf\n",Ax+1e-8,Ay+1e-8);
}
return 0;
}