poj2624 4th Point

纯水题,注意交点不一定是第二个点和第三个点

 

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<algorithm>
using namespace std;
struct Vector
{
    double x;
    double y;
};
struct point
{
    double x;
    double y;
};
Vector operator-(const point a,const point b)
{
    Vector temp;
    temp.x=a.x-b.x;
    temp.y=a.y-b.y;
    return temp;
}
Vector operator+(const Vector a,const Vector b)
{
    Vector temp;
    temp.x=a.x+b.x;
    temp.y=a.y+b.y;
    return temp;
}
bool operator==(const point a,const point b)
{
    if(a.x==b.x&&a.y==b.y)
    {
        return true;
    }
    return false;
}
int main()
{
    point a,b,c,d;
    while(scanf("%lf %lf %lf %lf %lf %lf %lf %lf",&a.x,&a.y,&b.x,&b.y,&c.x,&c.y,&d.x,&d.y)!=EOF)
    {
        if(b==d)
        {
            d=c;
        }
        if(a==c)
        {
            point t=a;
            a=b;
            b=t;
        }
        if(a==d)
        {
            d=c;
            point t=a;
            a=b;
            b=t;
        }
        Vector m,n;
        m=a-b;
        n=d-b;
        Vector temp=m+n;
        point res;
        res.x=b.x+temp.x;
        res.y=b.y+temp.y;
        printf("%.3f %.3f\n",res.x,res.y);
    }
    return 0;
}
//180K 0MS

posted @ 2012-07-23 21:24  willzhang  阅读(151)  评论(0编辑  收藏  举报