我需要一种方法来合并一个矩形对象数组(具有
如果两个矩形相交,则应替换为最小外接矩形。在合并后,需要再次检查列表以防新的 MBR 与其他矩形相交。我想不出来怎么做。
x,y,w,h
属性的对象),仅当它们相交时才合并。例如:
merge([{x:0,y:0,w:5,h:5},{x:1,y:1,w:5,h:5}])
将返回:[{x:0,y:0,w:6,h:6}]
merge([{x:0,y:0,w:1,h:1},{x:5,y:5,w:1,h:1}])
将返回:[{x:0,y:0,w:1,h:1}, {x:5,y:5,w:1,h:1}]
merge([{x:0,y:0,w:5,h:5},{x:1,y:1,w:5,h:5},{x:15,y:15,w:1,h:1}])
将返回:[{x:0,y:0,w:6,h:6},{x:15,y:15,w:1,h:1}]
如果两个矩形相交,则应替换为最小外接矩形。在合并后,需要再次检查列表以防新的 MBR 与其他矩形相交。我想不出来怎么做。
{x:0, y:0, w:2, h:2}, {x:1, y:1, w:2, h:2}
您想要最小的包围矩形,最大的被包含在交集中的矩形,第一个矩形,还是第二个矩形? - aaronasterling{x:0, y:0, w:10, h:10}, {x:9, y:9, w: 11, h:11}, {x:11, y:0, h:2, w:20}
。最后一个是否应被视为与前两个相交?起初它并没有相交,但是在将它们合并到包围矩形中后,它会与其相交。 - aaronasterling