我有一个dimensions L*W
和n smaller rectangles
的大矩形,每个矩形都有相同的维度l * w
。每个小矩形都具有相同的dimensions
。
我的目标是将所有n of smaller
矩形拟合到大矩形中,同时尽可能最有效地利用大矩形中的空间。 l和w可以根据需要按比例放大或缩小,只要比例保持不变即可。
如何确定较小的矩形应如何缩放以适应大矩形?
答案 0 :(得分:1)
这是一种算法,可以找到缩放系数F
的最大值,这样当按a x b
缩放时,所有小F
矩形都适合包含的矩形{{1} }:
对于每对A x B
的正整数,
(p, q)
p <= n
q <= n
或n = p * q - r
r >= 0
,r < p
计算p < q
f = min(A/(a*p), B/(b*q)).
为1中计算的所有因子F
的最大值。所有对f
的计算可以如下进行:
(p, q)
p := 0
p := p + 1
,请停止p > n
(整数除法)。下一对q := n + p - 1 / p
。算法的想法
每对(p, q)
表示缩放矩形的特定布局,其中(p, q)
矩形位于水平行和p
行,最后一行可能不完整。以下是q
写为n = 13
的示例:
由于宽度为3 * 5 - 2
的{{1}}缩放矩形必须符合宽度为p
的矩形,因此我们有:f*a
或A
。同样p*f*a <= A
因此,此配置的最大比例为f <= A/(p*a)