怎样求坐标系中两个相交矩形的相交面积啊?【问题描述】平面上有两个矩形A和B,其位置是任意的.编程求出其相交部分(如图中阴影部分)的面积【输入形式】从标准输入读取两行以空格分
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 14:20:58
怎样求坐标系中两个相交矩形的相交面积啊?【问题描述】平面上有两个矩形A和B,其位置是任意的.编程求出其相交部分(如图中阴影部分)的面积【输入形式】从标准输入读取两行以空格分
怎样求坐标系中两个相交矩形的相交面积啊?
【问题描述】
平面上有两个矩形A和B,其位置是任意的.编程求出其相交部分(如图中阴影部分)的面积【输入形式】
从标准输入读取两行以空格分隔的整数,格式如下:
Ax1 Ay1 Ax2 Ay2
Bx1 By1 Bx2 By2
其中(x1,y1)和(x2,y2)为矩形对角线上端点的坐标.各坐标值均为整数,取值在0至1000之间.
【输出形式】
向标准输出打印一个整数,是两矩形相交部分的面积(可能为0).在输出末尾要有一个回车符.
怎样求坐标系中两个相交矩形的相交面积啊?【问题描述】平面上有两个矩形A和B,其位置是任意的.编程求出其相交部分(如图中阴影部分)的面积【输入形式】从标准输入读取两行以空格分
先找交点,现求多边形面积.交点为所有边试试,凡在两个区域内的都要.
我遇到过相类似的问题 楼主可以看下
第一个矩形左下角x1,y1,右上角x2,y2,第二个左下x3,y3,右上x4,y4:
假设两矩形相交,则相交区域的坐标为
左下角max(x1,x3),max(y1,y3)
右上角min(x2,x4),min(y2,y4)
要使条件成立,则min(x2,x4)-max(x1,x3)>=0 且min(y2,y4...
全部展开
我遇到过相类似的问题 楼主可以看下
第一个矩形左下角x1,y1,右上角x2,y2,第二个左下x3,y3,右上x4,y4:
假设两矩形相交,则相交区域的坐标为
左下角max(x1,x3),max(y1,y3)
右上角min(x2,x4),min(y2,y4)
要使条件成立,则min(x2,x4)-max(x1,x3)>=0 且min(y2,y4)-max(y1,y3)>=0
如果假设成立,则相交矩形面积为:(min(x2,x4)-max(x1,x3))* (min(y2,y4)-max(y1,y3))
代码如下:
int max(int a,int b)
{
return a>b?a:b ;
}
int min(int a ,int b)
{
return a}
int GetIntersectArea(int x1,int x2,int x3,int x4,int y1,int y2,int y3,int y4)
{
if((min(x2,x4)-max(x1,x3)>=0)&& (min(y2,y4)-max(y1,y3)>=0))
{
return (min(x2,x4)-max(x1,x3))* (min(y2,y4)-max(y1,y3));
}
else
{
printf("矩形不相交\n");
}
return 0;
}
收起
大哥、、、你是北航的么、、、、