我有一系列的堇菜
int[][] xyBoard = new int[6][7];
int[] flattenedBoard = new int[42];
其中0,0是电路板的左下角。
我想在网格中显示数据,但网格要从左上方到右下方排列所有内容
网格需要一个长度为42的一维数组,此数组中的位置1需要对应于xyBoard数组中的x,y 0.5,然后,在扁平数组中的位置2将在2d数组中为1.5,依此类推。 ..关于如何将xyBoard转换为扁平数组或公式的任何构想,以给定1d数组位置引用2d数组的正确坐标。
引用坐标的公式是
int idx(int x, int y) {
return y*widthOfBoard() + x;
}
int x(int idx) {
return idx % widthOfBoard();
}
int y(int idx) {
return (idx - x(idx)) / widthOfBoard();
}
要获取一维数组的索引,请调用idx(x,y)
其中,x,y是您的坐标。
要从索引获取x坐标,请执行
x(idx)
其中idx是您在一维数组中的索引。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句