【问题标题】:Find maximum size of rectangles to fill a container查找填充容器的最大矩形大小
【发布时间】:2012-01-22 14:58:34
【问题描述】:

我有一个具有一定宽度和高度的容器。我有一堆块需要放入容器中,但我需要计算这些块可以容纳的最大尺寸。

例如:

到:

我猜它类似于question,但他的代码是 jquery 并且适用于文本。我只是想要伪代码或某种形式的算法来说明如何做到这一点。

【问题讨论】:

  • 你对积木了解多少?从图中可以看出,它们都具有相同的高度和相同的方向。这是一个有效的假设吗?
  • 所有块的高度相同但宽度不同,并且必须具有相同的方向
  • 并且它们都必须以相同的比例调整大小。
  • 把这个人的帖子里的字想成块:stackoverflow.com/questions/4371003/…

标签: algorithm packing


【解决方案1】:

假设,如图所示,所有块具有相同的高度和方向,您可以使用块的长度创建一个数组A

如果目标是将块最佳地打包在给定的边界矩形中,则求解subset sum problem 以找到最接近最大长度但又不会更大的块集。删除第一行的那些块,然后对剩余的块重复该过程。

如果目标是找到最小的(按区域)边界矩形,那么您应该看看这篇论文:Fast Optimizing Rectangle Packing Algorithm for Building CSS Sprites。它还涵盖了块的高度可能不同的情况。

如果块可以有不同的方向,那么问题就更难了packing problem

【讨论】:

  • Re: 子集总和问题,所以使用第一个块并不断调整它的大小,直到它具有可以容纳在容器中的最大宽度,然后检查其他的大小,如果他们没有适合,只是减少并重复?
猜你喜欢
  • 2010-09-05
  • 2011-10-18
  • 1970-01-01
  • 1970-01-01
  • 2019-08-13
  • 1970-01-01
  • 2015-10-21
  • 2014-06-07
  • 1970-01-01
相关资源
最近更新 更多