如果您有一个可以是不同尺寸的网格(即 4x6 然后 10x15),您将如何找出该特定单元格附近的单元格?是否可以说您在单元格 15 中并告诉如果它是一个 10x10 网格,则单元格 15 具有单元格 5、14、16 和 25 作为邻居?或者,网格可以有许多不同的维度这一事实是否会使 C++ 或 Java 中的函数无法即时计算出来?
问问题
119 次
1 回答
2
让我们构造一个算法:
给定维度m
行*n
列,我们有以下示例网格。在此示例中,m
为 2 和n
3。
+-----+
|0|1|2|
+-----+
|3|4|5|
+-----+
现在,我们可以确定一个单元格在垂直位置a
和水平位置的b
数量是am+b
。
既然我们知道m
,让我们使用模数来计算 a 和 b。
由于 b 小于m
(因为我们在编程中使用 0 作为第一行和第一列),我们可以说 gridsquare 的位置是z
column z%m
, row意味着向下舍入为整数。floor(z/m)
floor(
然后,您可以尝试在 m 和 n 上加减 1 以获得 4 个相邻方格,然后计算它们的数字 ID,am+b
如前所示。
于 2013-06-30T16:46:05.197 回答