9

現在、2D 地形図を 1 次元配列に保存するプロジェクトに取り組んでいます。マップ内の各ブロックには、xy 座標によってインデックスが付けられます。そのため、マップを 1 次元配列に保存するために、行優先順の方法 ( http://en.wikipedia.org/wiki/Row-major_order ) を使用して、xy 座標を単一のインデックス値 (どのインデックス値に変換するか) に変換しました。ブロックを配列に入れましょう)。

さて、私の問題は、それを元に戻す方法です。xy座標に戻す必要がある一意の番号があります。どんな助けでも大歓迎です。^^

4

1 に答える 1

10

インデックスを計算するには、次のようなものを使用する必要があります。

index = X + Y * Width;

したがって、これを逆にするには、整数除算の切り捨てを利用して Y を取得します。X は、Y が「使い果たした」後に残ったものです。

Y = (int)(index / Width)
X = index - (Y * Width)
于 2011-05-13T12:35:03.347 に答える