Dada una cuadrícula donde sé el número de filas (que es fijo), y conozco el conteo actual de columnas (que pueden crecer arbitrariamente), ¿cómo puedo calcular la fila y la columna de un cuadrado a partir de su índice?¿Cómo se calcula la fila/col desde la posición de la cuadrícula?
+ + + + +
Cols ---> | 0 | 1 | 2 | 3 | ...
+--+---|---|---|---|---
0 | 0 | 3 | 6 | 9 | ...
+--+---|---|---|---|---
Rows 1 | 1 | 4 | 7 | A | ...
+--+---|---|---|---|---
2 | 2 | 5 | 8 | B | ...
+--+---|---|---|---|---
. . . . . ...
. . . . . .
. . . . . .
Por lo tanto, dado:
final int mRowCount = /* something */;
int mColCount;
y dada una cierta función:
private void func(int index) {
int row = index % mRowCount;
int col = ???
¿Cómo calculo correctamente col
? Debe ser una función tanto del número de columnas como de las filas, estoy bastante seguro. Pero mi cerebro me está fallando.
Ejemplo: si index == 4
, entonces row = 1
, col = 1
. Si index == 2
entonces row = 2
, col = 0
.
Gracias.