我有一组大小不同的矩形:
所有矩形在Y方向上受到限制,即Y坐标固定,只能沿X轴移动。 现在,我想使用等间距分布来水平排列所有这些矩形,但其中一些(图片中的灰色矩形)受到左右邻居(红色矩形)以及上下矩形的约束。
编辑: 矩形的初始位置是按行顺序定义的。 此外,在我的第一次实现尝试中,我还存储了每行中垂直矩形的存在情况,这些矩形重叠两个或更多行,如下所示:
Row 1: {id:1,w:15,h:10},{id:2,w:10,h:40},{id:3,w:10,h:40},{id:4,w:20,h:10}
Row 2: {id:2,w:10,h:40},{id:5,w:10,h:40},{id:3,w:10,h:40},{id:6,w:10,h:10},{id:7,w:10,h:10}
Row 3: {id:8,w:10,h:10},{id:9,w:18,h:10},{id:5,w:10,h:40},{id:10,w:10,h:10}
我正在寻找一种算法,可以水平分配所有这些矩形,使每个矩形左右与最近的矩形之间的间距相同,就像图片中的那样。
编辑2: 如何处理更高复杂度的提示,也将不胜感激: