交叉矩形的总面积

lol*_*olo 12 algorithm

什么是用于确定两个相交的矩形的总面积并且可以从坐标轴旋转的算法?

fre*_*ley 18

这里大致是你需要做的,尽可能一般地表达,但涵盖所有可能性:

  • 计算出交集的类别.即交叉区域有多少条边?它可以是0到8之间的任何值.
  • 找到交叉点的所有顶点.这将是矩形边缘与矩形本身相关角落之间的所有交叉点.解决这个问题是最复杂/乏味的.
  • 如果需要,可以将交叉区域划分为三角形.

这是矩形可以交叉的所有方式: 替代文字

更新

我有一些想法,分类交叉点的最佳方法是围绕每个矩形的周长进行追踪,并计算每条边与另一条边相交的次数.你会得到一个矢量,例如六边交叉区:{1,1,1,1},{0,1,1,1}和8:{2,2,2,2},{ 2,2,2,2}.您需要检查的两个特殊情况是,当一个矩形完全包围另一个矩形并且边缘在线时.您需要仔细检查,但这将是功能对交叉点进行分类的起点.

  • 交叉点也可能是5,6,7或8边的数字. (3认同)
  • 不错的图表.仅此一点就值得+1. (2认同)
  • 另一种情况:两个相同大小的矩形精确重叠(重叠区域是任一矩形的总面积). (2认同)