容器中的最佳图像对齐方式,以使其最大(调整大小)

时间:2018-12-15 09:26:18

标签: algorithm layout

我有一个无法解决的算法问题。假设我有一个具有X宽度和Y高度的矩形工作区,以及N个具有x宽度和y高度的矩形图像(它们都具有相同的大小)。现在,我想在工作空间中对齐它们,但是我可以在各种情况下做到这一点。我想选择图像最大尺寸的情况。

条件:

  • 图像可以调整大小,但所有图像都必须使用相同的值调整大小

  • 图像的比例必须保持。

有没有解决此类问题的方法?似乎有点像切割的优化,但具有调整大小。

示例:

  • 工作区:1000x1000

  • 图片尺寸:300x200

  • 图片数:5

解决方案:

  • 比例尺:5/3

  • 调整后的图像:500x333

  • 对齐方式:第2行,第3列

1 个答案:

答案 0 :(得分:0)

我将参考工作空间的尺寸和图像的宽度和高度,用普通字母componentDidUpdateW代替HX

因此,您的工作区大小为Y,图像大小为(W, H),并且您有(w, h)个图像可以容纳。
计算Np = (W*h) / (H*w)r = round(sqrt(N * p))
您的对齐方式将是c = ceil(N / r)行和r列。然后,您可以缩放图像,以使cw*c = W and h*r <= H