| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
题倒是很简单就是代码写的有点乱。。。#include <iostream>
#include <stdio.h>
#include <string>
#include <cmath>
using namespace std;
struct point{
float x,y;
}P[6];
int main(){
// freopen("in.txt","r",stdin);
int T;
scanf("%d",&T);
while(T--){
for(int i=0;i<3;++i){
scanf("%f %f",&P[i].x,&P[i].y);
}
float x1,y1,k2,k1,k3,x2,y2,X,Y,k4;
if(P[0].x==P[1].x){
x1=P[0].x;
y1=P[2].y;
k2=(y1-P[2].y)/(x1-P[2].x);
k1=(P[2].y-P[0].y)/(P[2].x-P[0].x);
x2=(P[1].x+k1*P[1].y-k1*P[0].y+k1*k1*P[0].x)/(k1*k1+1);
y2=(k1*x2-k1*P[0].x+P[0].y);
if(x2==P[1].x){
X=(P[1].x);
Y=(k1*(P[1].x-P[2].x)+P[2].y);
printf("%.4f %.4f\n",X,Y);
}
else{
k3=(y2-P[1].y)/(x2-P[1].x);
X=(y1-k2*x1+k3*x2-y2)/(k3-k2);
Y=k2*X-k2*x1+y1;
printf("%.4f %.4f\n",X,Y);
}
}
else{
if(P[0].x==P[2].x){
x1=P[0].x;
y1=P[1].y;
k2=(y1-P[1].y)/(x1-P[1].x);
k1=(P[1].y-P[0].y)/(P[1].x-P[0].x);
x2=(P[2].x+k1*P[2].y-k1*P[0].y+k1*k1*P[0].x)/(k1*k1+1);
y2=(k1*x2-k1*P[0].x+P[0].y);
if(x2==P[2].x){
X=(P[2].x);
Y=(k1*(P[2].x-P[1].x)+P[1].y);
printf("%.4f %.4f\n",X,Y);
}
else{
k3=(y2-P[2].y)/(x2-P[2].x);
X=(y1-k2*x1+k3*x2-y2)/(k3-k2);
Y=k2*X-k2*x1+y1;
printf("%.4f %.4f\n",X,Y);
}
}
else{
if(P[1].x==P[2].x){
x1=P[1].x;
y1=P[1].y;
k2=(y1-P[1].y)/(x1-P[1].x);
k1=(P[0].y-P[1].y)/(P[0].x-P[1].x);
x2=(P[2].x+k1*P[2].y-k1*P[1].y+k1*k1*P[1].x)/(k1*k1+1);
y2=(k1*x2-k1*P[1].x+P[1].y);
if(x2==P[2].x){
X=(P[2].x);
Y=(k1*(P[2].x-P[0].x)+P[0].y);
printf("%.4f %.4f\n",X,Y);
}
else{
k3=(y2-P[2].y)/(x2-P[2].x);
X=(y1-k2*x1+k3*x2-y2)/(k3-k2);
Y=k2*X-k2*x1+y1;
printf("%.4f %.4f\n",X,Y);
}
}
else{
k1=(P[1].y-P[0].y)/(P[1].x-P[0].x);
x1=(P[2].x+k1*P[2].y-k1*P[0].y+k1*k1*P[0].x)/(k1*k1+1);
y1=k1*x1-k1*P[0].x+P[0].y;
k2=(P[2].y-P[0].y)/(P[2].x-P[0].x);
x2=(P[1].x+k2*P[1].y-k2*P[0].y+k2*k2*P[0].x)/(k2*k2+1);
y2=(k2*x2-k2*P[0].x+P[0].y);
if(x1==P[2].x){
k4=(y2-P[1].y)/(x2-P[1].x);
X=P[2].x;
Y=k4*(P[2].x-P[1].x)+P[1].y;
printf("%.4f %.4f\n",X,Y);
}
else{
if(x2==P[1].x){
k3=(y1-P[2].y)/(x1-P[2].x);
X=P[1].x;
Y=(k3*(P[1].x-P[2].x)+P[2].y);
printf("%.4f %.4f\n",X,Y);
}
else{
k3=(y1-P[2].y)/(x1-P[2].x);
k4=(y2-P[1].y)/(x2-P[1].x);
X=(P[2].y-k3*P[2].x-P[1].y+k4*P[1].x)/(k4-k3);
Y=(k3*X-k3*P[2].x+P[2].y);
printf("%.4f %.4f\n",X,Y);
}
}
}
}
}
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator