poj1269

Source Code

Problem: 1269 User: Praesidio
Memory: 156K Time: 0MS
Language: C++ Result: Accepted
  • Source Code
    #include <cstdio>
    const double eps=1e-8;
    struct point{
    	double x,y;
    	point() {	}
    	point(double _x,double _y) : x(_x),y(_y) {	}
    };
    double operator * (point A,point B) 
    {
    	return (A.x*B.y-A.y*B.x);
    }
    double operator ^ (point A,point B)
    {
    	return (A.x*B.x+A.y*B.y);
    }
    point operator - (point A,point B)
    {
    	return point(A.x-B.x,A.y-B.y);
    }
    
    int n;
    int x1,y1,x2,y2;
    int sgn(double d)
    {
    	return (d>eps?1:(d<-eps?-1:0));
    } 
    
    int main()
    {
    	scanf("%d",&n);
    	printf("INTERSECTING LINES OUTPUT\n");
    	for (int i=0;i<n;i++) {
    		point a[5];
    		int x,y;
    		for (int j=1;j<=4;j++) {
    			scanf("%d%d",&x,&y);
    			a[j]=point(x,y);
    		}
    		
    		double d1,d2;
    		d1=(a[2]-a[1])*(a[3]-a[1]);
    		d2=(a[2]-a[1])*(a[4]-a[1]);
    		
    		if (sgn(d1-d2)==0) {
    			if ((a[1].y-a[2].y)*(a[1].x-a[3].x)-(a[1].y-a[3].y)*(a[1].x-a[2].x)==0)
    			printf("LINE\n");
    			else printf("NONE\n"); 
    			continue;
    		}
    		point node=point((a[3].x*d2-a[4].x*d1)/(d2-d1) , (a[3].y*d2-a[4].y*d1)/(d2-d1));
    		printf("POINT %.2lf %.2lf\n",node.x,node.y);
    	}
    	printf("END OF OUTPUT\n");
    	return 0;
    } 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值