| ||||||||||
| 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<cstdio>
#include<cmath>
#define eps 1e-10
struct point{double x,y;}p[210];
int zero(double a)
{
if(fabs(a)<eps)return 0;
return (a>0)?1:-1;
}
double det(double x1,double x2,double y1,double y2)
{
return x1*y2-x2*y1;
}
double cross(point a,point b,point c)
{
return det(b.x-a.x,b.y-a.y,c.x-a.x,c.y-a.y);
}
void dcross(point a,point b,point c,point d)
{
double size1=cross(a,b,c);
double size2=cross(a,b,d);
point ret;
if(zero(size1)==0&&zero(size2)==0)
{
printf("LINE\n");
return;
}
if(zero(size1-size2)==0)
{
printf("NONE\n");
return;
}
if(zero(size1)==0)
{
ret.x=c.x;
ret.y=c.y;
}
else if(zero(size2)==0)
{
ret.x=d.x;
ret.y=d.y;
}
else
{
ret.x=(size1*d.x-size2*c.x)/(size1-size2);
ret.y=(size1*d.y-size2*c.y)/(size1-size2);
}
printf("POINT %.2f %.2f\n",ret.x,ret.y);
return;
}
int main()
{
int ti;
scanf("%d",&ti);
printf("INTERSECTING LINES OUTPUT\n");
while(ti--)
{
point a[4];
for(int i=0;i<4;i++)scanf("%lf%lf",&a[i].x,&a[i].y);
dcross(a[0],a[1],a[2],a[3]);
}
printf("END OF OUTPUT\n");
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator