Jos*_*eph 6 algorithm geometry rectangles
我有一个大矩形dimensions L*W
,并且n smaller rectangles
每个矩形都有相同的尺寸l * w
。每个小矩形都有相同的dimensions
。
我的目标是将所有n of smaller
矩形放入大矩形中,同时尽可能最有效地利用大矩形中的空间。l 和 w 可以根据需要放大或缩小,只要比例保持不变即可。
如何确定如何缩放较小的矩形以将它们全部放入大矩形中?
这是一个算法,它找到缩放因子的最大值F
,使得所有小a x b
矩形在缩放时都F
适合包含的矩形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)).
\n2。让为1 中计算的F
所有因子的最大值。f
所有对的计算(p, q)
可以如下进行:
p := 0
p := p + 1
p > n
,停止q := (n + p - 1) / p
(整数除法)。下一对(p, q)
。\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0算法思想
\n每对(p, q)
代表缩放矩形的特定布局,其中p
矩形位于水平行和q
行中,最后一个可能不完整。n = 13
以下是写为的示例3 * 5 - 2
:\n
由于p
缩放后的宽度矩形f*a
必须适合宽度为 的矩形A
,因此我们有:p*f*a <= A
或f <= A/(p*a)
。相似地f <= B/(q*b).
,因此该配置的最大规模是min(A/(p*a), B/(q*b)).