在设置矩形

时间:2017-05-04 21:56:51

标签: javascript algorithm geometry polygons bin-packing

我有一组20个(示例)2D多边形,范围从三角形,4面不规则,5面到6面多边形。其中一些几乎是完美的矩形,其中一些是完全不规则的形状。所有这些都将有3到6个边,最大。

我也有一些矩形,让我们说它是16乘9,因为它是屏幕的典型宽高比。

我的目标是找到一种方法来拼错矩形内部的多边形,浪费最小的空间。

我可以旋转它们,向上或向下缩放它们,将它们移动到矩形内的任何位置。唯一的规则是这样做,同时保持它们在视觉上令人愉悦(不要将它们放大或过小,如果可能的话,不要将它们旋转超过+ -45度)。

如上所述,这是一个示例图片:

enter image description here

在左侧,我们看到可接受的结果,在右侧,我们看到输入。

我曾经想过要教AI做这项工作,但有没有算法可以帮助解决这个问题? 请记住,一旦我将一些多边形放置到矩形中,我会在程序上继续根据请求添加更多的多边形。

1 个答案:

答案 0 :(得分:0)

如果您想要AI来解决它,您需要建立一个优化的效用函数。

可以用以下术语来定义:

  • 连续使用的区域(例如:多么合适的区域)

  • 内部区域

  • 外面的区域