我有一个无法解决的算法问题。假设我有一个具有X宽度和Y高度的矩形工作区,以及N个具有x宽度和y高度的矩形图像(它们都具有相同的大小)。现在,我想在工作空间中对齐它们,但是我可以在各种情况下做到这一点。我想选择图像最大尺寸的情况。
条件:
图像可以调整大小,但所有图像都必须使用相同的值调整大小
图像的比例必须保持。
有没有解决此类问题的方法?似乎有点像切割的优化,但具有调整大小。
示例:
工作区:1000x1000
图片尺寸:300x200
图片数:5
解决方案:
比例尺:5/3
调整后的图像:500x333
对齐方式:第2行,第3列
答案 0 :(得分:0)
我将参考工作空间的尺寸和图像的宽度和高度,用普通字母componentDidUpdate
和W
代替H
和X
。
因此,您的工作区大小为Y
,图像大小为(W, H)
,并且您有(w, h)
个图像可以容纳。
计算N
,p = (W*h) / (H*w)
和r = round(sqrt(N * p))
。
您的对齐方式将是c = ceil(N / r)
行和r
列。然后,您可以缩放图像,以使c
或w*c = W and h*r <= H
。