坐标到网格框编号

Ric*_*ton 4 math grid coordinates

假设我有一些看起来像这样的网格

 _ _ _ _ _ _ _ _ _
|     |     |     |
|  0  |  1  |  2  |
|_ _ _|_ _ _|_ _ _| 
|     |     |     |
|  3  |  4  |  5  |
|_ _ _|_ _ _|_ _ _| 
|     |     |     |
|  6  |  7  |  8  |
|_ _ _|_ _ _|_ _ _| 
Run Code Online (Sandbox Code Playgroud)

如果我只知道坐标,如何找到我所在的单元格?例如,我如何0(0,0),或者我如何7(1,2)

另外,我发现了这个问题,它可以反向执行我想要做的事情,但是我无法根据我的需要将其反转,因为据我所知,模数没有数学倒数。

and*_*and 5

在这种情况下,给定A范围 [0, 9) 中的单元格索引,行由 给出,R = floor(A/3)列由 给出C = A mod 3

在一般情况下,将MN单元格排列成具有M行和N列的M x N网格(网格),给定 [0, MN) 中的整数 B,则行由 找到,R = floor(B/N)列由 找到C = B mod N

反过来说,如果给定一个网格元素 (R, C),其中 R 在 [0, M) 中,C 在 [0, N) 中,则在您显示的方案中找到元素由 给出A = RN + C


Blu*_*eft 5

cell = x + y*width
Run Code Online (Sandbox Code Playgroud)

程序员经常使用它来将一维数组视为二维数组。