algorithm - 如何将一个矩形区域分成代表总面积百分比的较小矩形?

标签 algorithm geometry

<分区>

基本上我试图获得一个“漂亮”的图像,其中所有的小矩形加起来就是大矩形,有点像:

Disk Inventory X

*稍后编辑以澄清一些事情:

  1. 我希望能够在一款软件中绘制类似这样的东西。所以,我需要的是更接近一种算法。

  2. 我只需要一些矩形。我不需要它们有一些预定义的比例,只是它们看起来像一个矩形。正方形和 3:1 宽度/高度(或高度/宽度)之间的任何值都可以。极其幼稚的方法是将封闭矩形的宽度除以封闭矩形的百分比,但这会产生薄片,一些较小百分比的矩形将下降到 1px 以下。

我需要找到一种方法将矩形拆分成多行。

*第二次编辑:问题已解决。我一直在寻找 TreeMap 算法(正如 Phpdna 所指出的)。一旦我有了关键字,我就能够快速找到几个满足我要求的 python 实现。

最佳答案

Treemap 是一种可以将较小的矩形打包成 map 的算法。您可以递归地将平面分割为更小的图 block ,例如通过沿 2 轴分割平面并将结果保存到树中。

关于algorithm - 如何将一个矩形区域分成代表总面积百分比的较小矩形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18255324/

相关文章:

c# - 确定主要文章图片 - HTML Agility Pack

math - 二维空间三角形碰撞检测

删除中央白色圆圈?

opencv - 如何计算两个旋转矩形的重叠率?

algorithm - 获取网格中的连续面

javascript - Ratchet 删除/添加数据忽略 ="push"

c++ - 如何压缩一个非重复数字大小为N位的序列?

math - 在一点处分割三次贝塞尔曲线

html - CSS-如何将图像形状从圆形更改为方形或星形?

algorithm - 从 n 中选择 k