UVa 476 - Points in Figures: Rectangles

291 篇文章 2 订阅
88 篇文章 0 订阅

题目:点在矩形内判断。

分析:简单题、计算几何。与两个顶点比较在顶点之间即可。

注意:在边上的不算。

#include <iostream>
#include <cstdlib>
#include <cstdio>

using namespace std;

typedef struct pnode{
	double x,y;
}point;

typedef struct rnode{
	point p1,p2;
}rect;
rect R[11];

int main()
{
	char c;
	int  count = 0,t = 1;
	while ( cin >> c && c != '*' ) {
		cin >> R[count].p1.x >> R[count].p1.y
			>> R[count].p2.x >> R[count].p2.y;
		count ++;
	}
	
	point p;
	while ( cin >> p.x >> p.y ) {
		if ( p.x == 9999.9 && p.y == 9999.9 ) break;
		int flag = 0;
		for ( int i = 0 ;i < count ; ++ i )
			if ( R[i].p1.x < p.x && R[i].p2.x > p.x &&
			     R[i].p2.y < p.y && R[i].p1.y > p.y ) {
				flag = 1;
				printf("Point %d is contained in figure %d\n",t,i+1);
			}
		if ( !flag )
			printf("Point %d is not contained in any figure\n",t);
		t ++;
	}
	
	return 0;
}
 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值