将网格分解为行和列

时间:2018-07-14 11:13:47

标签: 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)))

是否可以使用一种算法将网格分解为这样的行和列?我一直在尝试它,但是我尝试过的任何事情都开始变得非常复杂,并且我怀疑我根本找不到找到代表和思考问题的好方法。

0 个答案:

没有答案