-6

如果您有一个可以是不同尺寸的网格(即 4x6 然后 10x15),您将如何找出该特定单元格附近的单元格?是否可以说您在单元格 15 中并告诉如果它是一个 10x10 网格,则单元格 15 具有单元格 5、14、16 和 25 作为邻居?或者,网格可以有许多不同的维度这一事实是否会使 C++ 或 Java 中的函数无法即时计算出来?

4

1 回答 1

2

让我们构造一个算法:

给定维度m行*n列,我们有以下示例网格。在此示例中,m为 2 和n3。

+-----+ 
|0|1|2|
+-----+
|3|4|5|
+-----+

现在,我们可以确定一个单元格在垂直位置a和水平位置的b数量是am+b

既然我们知道m,让我们使用模数来计算 a 和 b。

由于 b 小于m(因为我们在编程中使用 0 作为第一行和第一列),我们可以说 gridsquare 的位置是zcolumn z%m, row意味着向下舍入为整数。floor(z/m)floor(

然后,您可以尝试在 m 和 n 上加减 1 以获得 4 个相邻方格,然后计算它们的数字 ID,am+b如前所示。

于 2013-06-30T16:46:05.197 回答