首页 > 代码库 > POJ 1673
POJ 1673
可以证明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;}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。