码迷,mamicode.com
首页 > 其他好文 > 详细

POJ 1673

时间:2014-07-29 17:15:32      阅读:264      评论:0      收藏:0      [点我收藏+]

标签:blog   http   os   io   2014   div   ios   log   

可以证明O是三角形ABC的垂心。

bubuko.com,布布扣

bubuko.com,布布扣

作图辅助线,一个很重要的技巧是延长中线等中线。

可以证明三角形DNA全等于ABC。然后通过角度变换容易证明AQ垂直于BC。

bubuko.com,布布扣

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

  

POJ 1673,布布扣,bubuko.com

POJ 1673

标签:blog   http   os   io   2014   div   ios   log   

原文地址:http://www.cnblogs.com/jie-dcai/p/3875599.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!