基本上我试图得到一个“漂亮”的图像,其中所有的小矩形加起来都是大矩形,如:
*稍后编辑以澄清一些事情:
我希望能够在一个软件中绘制这样的东西。所以,我需要的是更接近算法。
我需要的只是一些矩形。我不需要他们有一些预定义的比例,只是他们看起来像一个矩形。正方形和3:1宽度/高度(或高度/宽度)之间的任何东西都可以。非常天真的方法是将封闭矩形的宽度除以封闭矩形所具有的百分比,但这将创建薄切片,一些较小百分比的矩形将下降1px。
我需要找到一种方法来分割多行的矩形。
*第二次修改:已解决的问题。我正在寻找一个TreeMap算法(由Phpdna指出)。一旦我有了关键字,我就能快速找到满足我要求的几个python实现。
答案 0 :(得分:2)
Treemap是一种可以将较小的矩形打包到地图中的算法。您可以递归地将平面细分为较小的平铺,例如通过沿2轴分割平面并将结果保存到树中。
答案 1 :(得分:-1)
这种方法可以保证小矩形始终覆盖初始矩形。那么通过在现有矩形集内构造矩形开始的任何其他方法也是如此。
我个人认为以上是容易的部分,困难的部分是在算法上确定绘制线的位置。我建议您考虑the Golden Ratio,表兄弟the Fibonnaci numbers和其他比例,例如A系列纸张尺寸的基础,即 1:sort(2)
。