gpt4 book ai didi

java - 显示数组排序

转载 作者:行者123 更新时间:2023-12-05 01:24:42 26 4
gpt4 key购买 nike

假设我有一个二维像素网格(4 x 4 像素)- 我有一张与我的草图大小相同的图像,已被切割成 16 个部分。现在我将所有 16 个部分加载到一个数组中。我想依次将这个数组映射到 2D 网格上,以便我的整体图像再次正确组合在一起。即左上图 0.png 和右下图 16.png。

我只是找不到允许我这样做的公式。例如,我知道使用 x+y*width 可以遍历所有像素 - 从左上角到右下角 - 所以我试过了。没有 *width 它不能正确地放在一起 - 使用 x+y*width - ArrayIndexOutOfBoundsException(当然)。

所以我认为我需要一个二维数组 - 但是使用 images[x][y] 我得到了一个 NullPointerException。我附上了一张我正在尝试创建的图片:

the grid with the sliced images – 16

到目前为止,这是我的代码——没有二维数组……

float pixelamount = 4;
float pixelsize;

PImage[] images = new PImage [16];

void setup() {
size(1080, 1080);
pixelsize = width/pixelamount;
for (int i = 0; i < images.length; i++) {
images[i] = loadImage(i + ".png");
}
imageMode(CENTER);
}

void draw() {
background(0);
pushMatrix();
translate(pixelsize/2, pixelsize/2);
for (int x = 0; x < pixelamount; x++) {
for (int y = 0; y < pixelamount; y++) {
pushMatrix();
translate(pixelsize*x, pixelsize*y);
image(images[x+y], 0, 0, pixelsize, pixelsize);
popMatrix();
}
}
popMatrix();
}

正如我所说 – 在行 image(images[x+y], 0, 0, pixelsize, pixelsize); 中,我只是没有正确计算。我需要一个二维数组来解决这个问题吗?还是完全不同的东西?

最佳答案

这应该在没有二维数组的情况下解决。

如果字段的尺寸已知为 4x4,那么循环可能应该从 0 运行到 4,如下所示:

void draw() {
background(0);
pushMatrix();
translate(pixelsize/2, pixelsize/2);
for (int x = 0; x < 4; x++) {
for (int y = 0; y < 4; y++) {
pushMatrix();
translate(pixelsize * x, pixelsize * y);
image(images[4 * x + y], 0, 0, pixelsize, pixelsize);
popMatrix();
}
}
popMatrix();
}

关于java - 显示数组排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71240135/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com