假设有两个矩形a、b,如果要求两个矩形在平面中是否相交?可以拆分成两个步骤:
1,宽是否相交? max(a_x1,b_x1)<min(a_x2,b_x2)
2,长是否相交?max(a_y1,b_y1)<min(a_y2,b_y2)
代码表示为:
/// <summary>
/// 矩形
/// </summary>
public class Cutting
{
public Vector2 startPos;//地图中的摆放位置
public Vector2 areaVe2;//大小
}
/// <summary>
/// 判断两个矩形是否相交
/// </summary>
public bool IsIntersectionRectangles(Cutting _a, Cutting _b)
{
return Mathf.Max(_a.startPos.x, _b.startPos.x) < Mathf.Min(_a.startPos.x + _a.areaVe2.x, _b.startPos.x + _b.areaVe2.x)
&& Mathf.Max(_a.startPos.y, _b.startPos.y) < Mathf.Min(_a.startPos.y + _a.areaVe2.y, _b.startPos.y + _b.areaVe2.y);
}
PS:包含也是相同的思路