2015-02-24 54 views
3

我有一个单独的大矩形dimensions L*Wn smaller rectangles,它们每个都具有相同的尺寸l * w。每个小矩形都有相同的dimensions将等长矩形放入较大的矩形中

我的目标是将所有n of smaller矩形放入大矩形中,同时尽可能地在大矩形中最有效地使用空间。只要比例保持不变,w和w就可以根据需要放大或缩小。

如何确定如何缩放较小的矩形以适合全部大矩形?

+0

您是否将所有小矩形缩放了相同的因子? – 2015-02-24 14:27:44

+0

@LeandroCaniglia是的,这正是我的意思。 – Joseph 2015-02-24 18:53:22

回答

1

这里是查找的缩放因子的最大值的算法F使得所有小a x b矩形,由F缩放将适合在含有矩形A x B时:

  1. 对于每一对(p, q)正整数,使得

    • p <= n
    • q <= n
    • n = p * q - r对于某个整数r >= 0满足r < pp < q

    计算f = min(A/(a*p), B/(b*q)).

  2. F是最大的所有因素f在1

所有对(p, q)的计算来计算可按以下步骤进行:

  1. [初始化] p := 0
  2. [增量] p := p + 1
  3. [结束?如果p > n,停止
  4. [下一个]让q := n + p - 1/p(整数除法)。下一对(p, q)
  5. [重复]转到2.

思想的算法的

每对(p, q)表示缩放矩形与水平行中p矩形和q行,最后一个特定布局一个可能不完整。下面是n = 13写成3 * 5 - 2一个例子: enter image description here

由于p缩放的宽度f*a矩形必须适合的宽度A长方形,我们有:p*f*a <= Af <= A/(p*a)。同样f <= B/(q*b).因此,此配置的最大比例是min(A/(p*a), B/(q*b)).