由网友(蜜糖の寳贝)分享简介:如果我有指数从0开始在网格上的位置的,我怎么能把它转换成一排,列?我越来越有以下不正确的结果。幸运的是,我知道有多少行,我有列在我的情况下,其11 11. INT列=位置%列;INT排=位置/列; 解决方案 // X:在区间[0水平位置;列-1]// Y:在区间[0垂直位置;行-1]INT X =索引%列;IN...
如果我有指数从0开始在网格上的位置的,我怎么能把它转换成一排,列?我越来越有以下不正确的结果。幸运的是,我知道有多少行,我有列在我的情况下,其11 11.
INT列=位置%列;INT排=位置/列;
解决方案
// X:在区间[0水平位置;列-1]// Y:在区间[0垂直位置;行-1]INT X =索引%列;INT Y =指数/列;INT列= X + 1;INT排= Y + 1;
扭转:
INT指数= X + Y *列;
或
INT指数=(列 - 1)+(行 - 1)*列;
If I have index starting from 0, of a position on a grid, how can I turn that into a row, column? I'm getting incorrect results with the following. Fortunately I know how many rows and columns I have and in my case its 11 by 11.
int column = position % columns;
int row = position / columns;
解决方案
// x : horizontal position in range [0; columns-1]
// y : vertical position in range [0; rows-1]
int x = index % columns;
int y = index / columns;
int column = x + 1;
int row = y + 1;
to reverse:
int index = x + y * columns;
or
int index = (column - 1) + (row - 1) * columns;
相关推荐
最新文章