1

幅と高さが常に同じ 2 次元グリッドがあります。

[0][1][2]
[3][4][5]
[6][7][8]

そのデータ ソースを 1 次元配列に縮小しました。

[0][1][2][3][4][5][6][7][8]

要素へのアクセスは機能しますが、ここで注意が必要な部分があります。1 次元配列を処理しているときに、セルの隣のセルがグリッドの外にあるかどうかを知るにはどうすればよいでしょうか?

たとえば、[5] の右上隣はグリッドから外れていますが、計算されたオフセット インデックスを使用すると、[3] が得られます。

この分野で経験のある人はいますか?

4

1 に答える 1

4

(i) セルのインデックスと (2) グリッドの次元 (分別ありますか?) がわかっていると仮定すると、1D 配列のインデックスはkであり、2D 配列のインデックスはi, jです。

それからk = i * width + j。したがってi = k / widthj = k % width. (/は整数除算、%はモジュラス)。

これらの 2 つのインデックスを取得すると、隣接するセルのインデックスがわかり、通常どおり境界に対してそれらをチェックできます (方法はわかっていると思います)。

于 2016-03-06T19:55:17.790 に答える