我需要一种算法将一个矩形(假设宽1000,高800)平均分成n个(或更多,但尽量少的额外矩形),使所有空间都被使用。小矩形也应尽可能接近原始长宽比。
例如:
+---------------+
| |
| |
| |
+---------------+
n = 2时的分割情况:
+---------------+
| |
+---------------+
| |
+---------------+
n=3时的拆分
+-------+-------+
| | |
+-------+-------+
| | |
+---------------+
等等。
是否有这样的算法?理想情况下,我希望用Python编写它,但是任何语言都可以,因为我应该能够将其翻译...
编辑:
一些额外信息:
目标表面将是浏览器窗口,因此表面大致为4:3或16:9或其他受欢迎的尺寸。矩形由像素组成。纵横比不保证是整数。
相对于宽高比约束,较少的多余矩形略好一些。
min(a, b), max(a, b)/2
组合。顺便问一下,这个尺寸是整数吗? - khachik