0

我需要一个接受两个输入的函数:

  • 具有宽度和高度的边界框
  • 具有不同宽度和高度的矩形项目数组(都小于边界框)

它将输出具有附加position属性的相同项目的数组(可以改变原始项目),x并且y使项目之间的距离最大化(注意 - 不是点之间的距离,需要考虑项目的尺寸)。

它不一定是经过数学证明的最佳解决方案,足够好的启发式方法是可以的

我看过装箱,但它似乎与我想要的相反。

任何语言都是可以接受的,甚至是伪代码。

我不知道从哪里开始。现在我只是随机化位置,偶尔会出现重叠的项目,这是不可取的。

4

1 回答 1

2

因为你只需要一个启发式,而不是一个最佳解决方案(没有人可以给你 ATM,因为“项目之间的距离最大化”是一个模糊的术语):

尽管 bin-packing 似乎是“相反的”,但它可以使用。取一个它们适合的较小(最小)的盒子,然后进行包装,然后将其与计算的位置一起拉伸。

于 2015-01-28T21:03:21.307 回答