繁体   English   中英

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

[英]Java: How to draw images on the smallest possible surface?

假设我有256张图像,平均尺寸为70x150(因此,如果可变,则为尺寸)。 我有一个Graphic实例(从具有给定大小的BufferedImage创建),要在其上绘制图像。 但是我想在尽可能低的表面上绘制它们。 因此,不仅在网格中,而且彼此之间真的很困惑。 但是!:它们可能不会彼此重叠。

也许只有人类的大脑才能处理。
我认为值得一问。

提前致谢,
马亭

例如:

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

之前已经问过这个问题: 可以使用哪种算法以最佳的方式将不同大小的矩形打包成最小的矩形?

可以从以下网址获得之前回答的一份好的问卷调查: http : //www.csc.liv.ac.uk/~epa/surveyhtml.html

基本上,您是在寻求背包问题的解决方案

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

有很多次优算法:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM