【问题标题】:Java: How to draw images on the smallest possible surface?Java:如何在尽可能小的表面上绘制图像?
【发布时间】:2011-05-24 20:53:02
【问题描述】:

假设我有 256 张图像,平均尺寸为 70x150(因此,尺寸可变)。我有一个Graphic-instance(从具有给定大小的 BufferedImage 创建),我想在其上绘制图像。但我想在尽可能低的表面上绘制它们。所以,不是单纯的在一个格子里,而是真的在彼此不解。但是!:它们可能不会相互重叠。

也许这是只有人脑才能做到的事情。
值得一问,我认为....

提前致谢,
马丁

例如:

+------++------+
|      ||      |
| img1 || img2 |
|      |+------+
|      |+-----------------+
+------+|                 |
+---+   |                 |
| 3 |   |                 |
|   |   |    img 4        |
+---+   |                 |
        |                 |
        +-----------------+

【问题讨论】:

  • 我不太明白你的问题。您是否在问如何在矩形列表中找到最小的矩形?或者如何实际绘制你的例子?或者您可以使用 Graphic 实例绘制的最小尺寸是多少?
  • 我不知道要使用的确切术语,但这个问题听起来很像 2D 版本的硬盘驱动器或内存空间管理问题:给定一个您要存储的新文件/数据,你把它放在哪里?最佳拟合、最差拟合、首次拟合等。也许您可以阅读一下以获取一些想法。
  • @DGH:确实,这是一个相关的比较。

标签: java image puzzle model-fitting


【解决方案1】:

【讨论】:

    【解决方案2】:

    基本上,您是在寻求knapsack problem. 的解决方案

    对于任意大小的背包问题,没有最优算法,因为它是 NP 难题。

    有很多次优算法:

    【讨论】:

      猜你喜欢
      • 2015-03-27
      • 1970-01-01
      • 2014-07-06
      • 2011-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多