Как вычислить строку / столбец по позиции сетки?

Учитывая сетку, в которой я знаю количество строк (которое фиксировано), и я знаю текущее количество столбцов (которое может увеличиваться произвольно), как мне вычислить строку и столбец квадрата на его основе? index?

           +   +   +   +   +
 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 , то row = 2 , col = 0 .

Спасибо.

10
задан i_am_jorf 23 August 2011 в 17:03
поделиться