gpt4 book ai didi

algorithm - 相交矩形的总面积

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:14:37 24 4
gpt4 key购买 nike

我需要一个算法来解决这个问题:给定 2 个矩形在任何角落相交或重叠在一起,如何确定没有重叠(相交)区域的两个矩形的总面积?这意味着相交面积必须计算一次,可以是第一个矩形,也可以是第二个矩形。

最佳答案

这很简单。先计算交点坐标,也是一个矩形。

left = max(r1.left, r2.left)
right = min(r1.right, r2.right)
bottom = max(r1.bottom, r2.bottom)
top = min(r1.top, r2.top)

然后,如果交点不为空(left < right && bottom < top),从两个矩形的公共(public)区域中减去它:r1.area + r2.area - intersection.area .

附言:

  1. 假设 1:矩形按坐标轴对齐,通常是这种情况。
  2. 假设2:这里的y轴向上增加,例如在图形应用中,y轴向下增加,你可能需要使用:

bottom = min(r1.bottom, r2.bottom)
top = max(r1.top, r2.top)

关于algorithm - 相交矩形的总面积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4549544/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com