匿名用户
1级
2014-10-30 回答
typedef struct RECTANGULAR
{
int x1;//平行于y轴的一条边坐标,下面同理
int y1;
int x2;
int y2;
}*prect_typedef,rect_typedef;
rect_typedef rect1,rect2;
//比较两个矩形,如果其中一个矩形的某一个顶点在另外一个矩形里面,说明两个相交,返回TURE
int compare_rect(prect_typedef rect1,prect_typedef rect2)
{
int ret_val = 0;
int i = 0;
if(rect2->x1 > rect2->x2)
{
//比较rect1 x1
if(rect1->x1 > rect2->x2 && rect1->x1 < rect2->x1)
{
if(rect2->y1 > rect2->y2)
{
//比较rect1 y1
if((rect1->y1 > rect2->y2 && rect1->y1 < rect2->y1))
{
return 1;
}
//比较rect1 y2
if((rect1->y2 > rect2->y2 && rect1->y2 < rect2->y1))
{
return 1;
}
}
else
{
//比较rect1 y1
if((rect1->y1 > rect2->y1 && rect1->y1 < rect2->y2))
{
return 1;
}
//比较rect1 y2
if((rect1->y2 > rect2->y1 && rect1->y2 < rect2->y2))
{
return 1;
}
}
}
//比较rect1 x2
if(rect1->x2 > rect2->x2 && rect1->x2 < rect2->x1)
{
if(rect2->y1 > rect2->y2)
{
//比较rect1 y1
if((rect1->y1 > rect2->y2 && rect1->y1 < rect2->y1))
{
return 1;
}
//比较rect1 y2
if((rect1->y2 > rect2->y2 && rect1->y2 < rect2->y1))
{
return 1;
}
}
else
{
//比较rect1 y1
if((rect1->y1 > rect2->y1 && rect1->y1 < rect2->y2))
{
return 1;
}
//比较rect1 y2
if((rect1->y2 > rect2->y1 && rect1->y2 < rect2->y2))
{
return 1;
}
}
}
}
else
{
//比较rect1 x1
if(rect1->x1 > rect2->x1 && rect1->x1 < rect2->x2)
{
if(rect2->y1 > rect2->y2)
{
//比较rect1 y1
if((rect1->y1 > rect2->y2 && rect1->y1 < rect2->y1))
{
return 1;
}
//比较rect1 y2
if((rect1->y2 > rect2->y2 && rect1->y2 < rect2->y1))
{
return 1;
}
}
else
{
//比较rect1 y1
if((rect1->y1 > rect2->y1 && rect1->y1 < rect2->y2))
{
return 1;
}
//比较rect1 y2
if((rect1->y2 > rect2->y1 && rect1->y2 < rect2->y2))
{
return 1;
}
}
}
//比较rect1 x2
if(rect1->x2 > rect2->x1 && rect1->x2 < rect2->x2)
{
if(rect2->y1 > rect2->y2)
{
//比较rect1 y1
if((rect1->y1 > rect2->y2 && rect1->y1 < rect2->y1))
{
return 1;
}
//比较rect1 y2
if((rect1->y2 > rect2->y2 && rect1->y2 < rect2->y1))
{
return 1;
}
}
else
{
//比较rect1 y1
if((rect1->y1 > rect2->y1 && rect1->y1 < rect2->y2))
{
return 1;
}
//比较rect1 y2
if((rect1->y2 > rect2->y1 && rect1->y2 < rect2->y2))
{
return 1;
}
}
}
}
return 0; //不相交
}