Java:如何在尽可能小的表面上绘制图像?

假设我有256张图片,平均大小为70x150(因此,大小如果可变)。我有一个
Graphic
-instance(从具有给定大小的BufferedImage创建),我想在其上绘制图像。但我想在尽可能低的表面绘制它们。所以,不仅仅是在一个网格中,而是相互困惑。但是!:他们可能不会互相重叠。 也许这只是人类大脑可以管理的东西。 值得一提,我想...... 提前致谢, 马亭 例如:
+------++------+
|      ||      |
| img1 || img2 |
|      |+------+
|      |+-----------------+
+------+|                 |
+---+   |                 |
| 3 |   |                 |
|   |   |    img 4        |
+---+   |                 |
        |                 |
        +-----------------+
    
已邀请:
之前已经问过这个问题: 可以使用什么算法以不同的方式将不同大小的矩形打包成最小的矩形? 从以前的答案中可以得到一个很好的调查: http://www.csc.liv.ac.uk/~epa/surveyhtml.html     
基本上,你要求解决背包问题。 对于任意大小的背包问题,没有最优算法,因为它是NP难问题。 有很多次优算法: 贪心搜索算法。 启发式搜索空间旅行算法,如A *系列 随机搜索算法,如模拟退火,遗传算法     

要回复问题请先登录注册