第一个矩形左下角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<b?a:b ;
}
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;
}
温馨提示:答案为网友推荐,仅供参考