C++两个平面矩形的相交判断

本文介绍了在C++中如何简单地判断两个矩形是否相交,通过分析矩形中心点距离来实现,避免了复杂的情况判断。适用于小游戏的碰撞检测场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近开发小游戏需要一个简单的碰撞检测,因为用的是自定义的Rect类,虽然这个判断方法很简单,但是百度看了很多人的写法代码量都相当的大。


当然搜到的结果都不是我想要的,于是只有自己写啦。两个矩形(不考虑旋转)相交大概就那么几种情况,如下图:



网上的算法要么就是判断顶点是否被包含,判断线段是否相交等等,这样做的不好的地方是要判断很多种情况。经过简单的分析我的方法如下图所示:



就是利用两个矩形中心点的距离去判断,如果两个矩形相交,他们的中心点的距离必然满足图中的两个条件。下面是代码:

/* 判断矩形是否相交 */
bool SelfRect::intersect(SelfRect * rect)
{
	if (0 != rect)
	{
		// 横向和纵向距离
		auto verti_dis = SDL_abs(rect->x - this->x);
		auto horiz_dis = SDL_
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值