给出一个子矩形,如何将矩形的其余部分分成两部分,以使两个新矩形更"squarish"?

Give a sub-rectangle, how does one divide the remainder of a rectangle into two parts such that the two new rectangles are more "squarish"?

本文关键字:两部分 新矩形 squarish 两个 一个 余部      更新时间:2023-10-16

我有一个矩形R1,宽w1,高h1。

我有一个较小的矩形R2 (w2,h2),它的原点与R1相同。(0,0) .

如何将剩余的空间划分为两个矩形,使每个矩形的长度和宽度之差尽可能小(更方)?

这是我到目前为止所做的:给定R2,有四种可能:

  1. R2与R1的尺寸相同,在这种情况下没有子矩形。
  2. R2和R1一样宽,但没有R1那么高,在这种情况下,只有一个子矩形可能。
  3. R2和R1一样高,但没有R1那么宽-再次有一个可能的子矩形,就像情况(2)一样。
  4. R2没有R1那么高,也没有R1那么宽。在这种情况下两个子矩形是可能的。

在情况(4)中,有两种可能的方法来划分剩余空间:

  1. R3 (w h) = (w1-w2 h2)和R4 (w h) = (w1, h1-h2)
  2. R3 (w h) = (w1-w2 h1)和R4 (w h) = (w2, h1-h2)

我算出一个正方形的边长之比是1:1,所以长边与短边之比越小,它就越接近正方形。

问题是,有两个子矩形。那么,既然有两个矩形,我如何决定哪一对矩形更方呢?

编辑:如果R3和R4的比值都在1。都大于2。,那么显然是2。是方形的。但如果只有一个矩形(例如R3)比另一个矩形(R4)有更好的比率,而另一个矩形(R4)有更差的比率呢?这有可能吗?

编辑:把R3和R4在每种情况下的比值加起来,然后选择和更小的情况,这有意义吗?

我们有一个L形,所以我们想知道是垂直切割还是水平切割,以使矩形更"方形"。所谓"更方",我们指的是最小化周长。所以答案很简单。