C/C++判断两矩形是否相交
typedefstructRect{ intx; //左上角x坐标 inty; //左上角Y坐标 ...
typedef struct Rect{ int x; //左上角x坐标 int y; //左上角Y坐标 int h; //矩形的高 int w; //矩形的宽}RECT;矩形定义如上,请编写一个函数判断两个矩形是否相交。函数形式为 BOOL FUN(矩形1,矩形2)。传入两个矩形,返回是否相交。我需要完整的代码,可以直接运行的。最好要有注释。我最终目的是做游戏物体碰撞检测。
展开
1个回答
展开全部
判断相交的情况比较麻烦,所以我采用判断不相交的情况,其他情况就是相交了,一个if搞定
当一个矩形在另一个矩形的上方或者下方或者左方或者右方并且有一定距离即表明两个矩形不相交
bool IsRectsCross(const Rect_t &r1, const Rect_t &r2)
{
if ((r1.y+r1.h < r2.y) || (r2.y+r2.h < r1.y)
|| (r1.x+r1.w < r2.x) || (r2.x+r2.w < r1.x))
{
return false;
}
else
{
return true;
}
}
当一个矩形在另一个矩形的上方或者下方或者左方或者右方并且有一定距离即表明两个矩形不相交
bool IsRectsCross(const Rect_t &r1, const Rect_t &r2)
{
if ((r1.y+r1.h < r2.y) || (r2.y+r2.h < r1.y)
|| (r1.x+r1.w < r2.x) || (r2.x+r2.w < r1.x))
{
return false;
}
else
{
return true;
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询