algorithm - 将网格分解为行和列
问题描述
目前我正在研究一种在网格上布置图和小部件的算法。我正在使用的底层库有两个用于构建网格、行和列的原语。这个想法是我给它提供了一个网格规范,它定义了每个绘图占用的网格单元数。单独的绘图和小部件可以占据一个或多个网格单元,但必须是矩形的。为了使这个问题更具体一点,我将绘制一个简单的 4x4 网格,其中每个数字代表一个单独的图或小部件:
---------------------
| 1 | 2 | 3 | 3 |
|____|____|____|____|
| 4 | 2 | 5 | 5 |
|____|____|____|____|
| 4 | 6 | 7 | 7 |
|____|____|____|____|
| 4 | 6 | 7 | 7 |
|____|____|____|____|
通过分解网格的每个部分,我们可以将其分解为许多嵌套的行和列,例如,在本例中,它可能看起来像这样:
col1 = column(1, 4)
col2 = column(3, 5)
row1 = row(2, col2)
row2 = row(6, 7)
col3 = column(row1, row2)
grid = row(col1, col3)
# or as a single expression
row(column(1, 4), column(row(2, column(3, 5)), row(6, 7)))
有没有一种算法可以让我们将这个网格分解成这样的行和列?我一直在玩它,但我尝试过的任何事情都会很快变得非常复杂,我怀疑我根本没有找到一种很好的方式来表示和思考这个问题。
解决方案
推荐阅读
- python-3.x - 将多个值读入 pandas DataFrame
- r - 根据data.table R中组内不同列中的后续值选择值
- php - 如何使用 PHP 以盒子样式显示 MySQL 查询结果?
- android - 错误:Ionic CLI 将退出。请检查上面的任何输出以获取错误详细信息
- sqlbulkcopy - c# - 给定的 ColumnName 'xxxxxxx' 与数据源中的任何列都不匹配
- javascript - 如何在 devtools 的 JavaScript 堆快照中获取对象的路径?
- python - 按 bs4 标签拆分/获取两个标签之间的文本
- r - R中的多元回归
- javascript - 制作按钮。单击按钮。DIV 与桌子转动并面向用户,但不起作用
- json - 尝试从 tkinter python 刷新 ScrolledText 和组合框