行の数がわかっているグリッド(固定されている)があり、現在の列の数(任意に増える可能性がある)を知っていますが、そのインデックスから四角形の行と列を計算するにはどうすればよいですか?グリッド位置から行/列を計算するには?
だから、 + + + + +
Cols ---> | 0 | 1 | 2 | 3 | ...
+--+---|---|---|---|---
0 | 0 | 3 | 6 | 9 | ...
+--+---|---|---|---|---
Rows 1 | 1 | 4 | 7 | A | ...
+--+---|---|---|---|---
2 | 2 | 5 | 8 | B | ...
+--+---|---|---|---|---
. . . . . ...
. . . . . .
. . . . . .
は、与えられた:
final int mRowCount = /* something */;
int mColCount;
そして、いくつかの機能を持た:
private void func(int index) {
int row = index % mRowCount;
int col = ???
どのように私は正しくcol
を計算するのですか?それは列と行の数の両方の関数でなければなりません、私はかなり確信しています。しかし、私の脳は私に失敗している。
サンプル:index == 4
の場合、row = 1
,col = 1
です。 index == 2
の場合は,col = 0
となります。
ありがとうございました。乗算でそれを置き換えることによって
int col = index/mRowCount;
、単一の分割に限定することは可能であろう(剰余演算を排除する):