获取二维数组位置超出整数

问题描述

我正在从图像中加载像素。 现在,我要为每个像素检查颜色并创建图像,我想将此图像添加到二维数组中。

val()

供参考:图像的高度始终为64,宽度为32。

要获得位置,我尝试将当前迭代除以宽度,以了解我当前所在的行。

int MAPWIDTH = 64; // in pixels
int MAPHEIGHT = 16; // in pixel
PImage[][] forGroundMap;

PImage file = loadImage(path);


file.loadPixels();
   
   int size = file.width * file.height;
   
   for (int i = 0; i < size; i++) {

    int y = divideBy(i,MAPWIDTH);

    //forGroundMap[y][x] == something what is x and y here
   }

}

但是,这并没有给我返回行中的列,而且我不确定这是否会起作用以及如何继续前进。

解决方法

您似乎想要的是简单的除法数学。

int y = 1 / 64;
System.out.println (y);
y = 65 / 64;
System.out.println (y);

修改

要获取x值,请使用模数

int x = 1 / 64;
int y = 1 % 64;
System.out.printf ("you are at [%d,%d]%n",x,y);
x = 65 / 64;
y = 65 % 64;
System.out.printf ("you are at [%d,y);