我有一个案例,我生成轴对齐的矩形,可能会或可能不会相互重叠 - 他们经常会。最终,我需要一组不重叠的矩形,但覆盖(至少)相同的区域。我正在寻找能够在实时设置中在线(在运行时)高效完成此算法的算法。我有一些想法,但它们可能是天真的或残酷的,如果这是一个经过充分研究和解决的问题,我想避免重新发明轮子。
我很难想到其他应用程序或隐喻可能会让我知道一个名字。这种问题/算法解决方案是否有特定名称?有点像,比如说,“四色定理”试图在没有相同颜色的相邻区域的情况下着色地图。在某种意义上,“四色定理”是具有“着色地图区域,使得没有相邻区域共享颜色”的算法是问题实例。
具体应用是生成矩形高度字段以便在对象周围进行碰撞,但是非常接近的对象将导致重叠的高度字段,这将导致碰撞瑕疵。保留现有矩形并支持具有较大区域的矩形是最好的,以最小化需要移动/复制到新矩形高度字段的内存量。
答案 0 :(得分:0)
您可能会发现有用的一类算法称为“平面扫描”或“线扫描”算法。基本上您可以通过其中一个轴对对象进行排序,然后按顺序处理它们,以发现所有重要的点/事件,如开始,结束,交叉点