当前位置: 首页 > 知识库问答 >
问题:

显示排序的数组(处理)

桂智志
2023-03-14

假设我有一个二维像素网格(4乘4像素)——我有一个和我草图一样大小的图像,它被切割成16个部分。现在我将所有16个部分加载到一个数组中。我想依次将这个数组映射到2D网格上,这样我的整体图像就可以再次正确地组合在一起。也就是说,左上角图像0.png右下角图像16.png.

我就是找不到能让我这么做的公式。例如,我知道使用xy*width可以在所有像素中运行,从左上到右下,所以我试过了。如果没有*宽度它就不能正确地坐在一起-如果有xy*宽度-数组索引边界外异常(当然)。

所以我想我需要一个2D数组,但是对于images[x][y]我得到了一个NullPointerException。我给你附上了一张我试图创作的图片:

这是我目前的代码——

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(图像[xy],0,0,pixelsize,pixelsize)行中 我只是不懂数学。我需要2D阵列来解决这个问题吗?还是完全不同的东西?


共有1个答案

东郭淇
2023-03-14

这应该在没有2D阵列的情况下解决。

如果字段的尺寸已知为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();
}
 类似资料:
  • 问题内容: 这是一段C ++代码,显示了一些非常特殊的行为。由于某些奇怪的原因,奇迹般地对数据进行排序使代码快了将近六倍: 不使用std::sort(data, data + arraySize);,代码将在11.54秒内运行。 使用排序的数据,代码将在1.93秒内运行。 最初,我认为这可能只是语言或编译器异常,所以我尝试了Java: 具有类似但不太极端的结果。 我首先想到的是排序将数据带入缓存,

  • 我想在单击按钮后在textBox中显示我的排序数组。我有两个类和一个接口。第一类生成随机数并在textbox1中显示,第二类进行冒泡排序,而我不能在texbox上显示排序数组。 头等舱: 这是气泡排序 等差算法: 最后一件事是请求TextBox: 是否重写bubblesort方法?或者怎样?我几乎什么都试过了。Thanskd和问候。

  • 根据items数组里面num的值去arr数组里面拿数据,按竖向排序 期望得到数据格式: 麻烦各位大佬看看,感激不尽

  • 我发现了这个流行的9岁左右的问题,并决定重新检查它的结果。 所以,我有AMD Ryzen 9 595 0x、Clang++10和Linux,我从问题中复制粘贴了代码,下面是我得到的: 分类-0.549702秒: 未排序-0.546554s: 我很确定的事实是,未经排序的版本被证明是快了3ms,只是噪音,但它似乎不再慢了。 那么,CPU的架构发生了什么变化(以至于不再慢一个数量级)? 以下是多次运行

  • 在这篇文章中,为什么处理排序数组比处理随机数组更快,它说分支预测是排序数组性能提升的原因。 但是我刚刚使用Python尝试了这个例子;我认为排序数组和随机数组没有区别(我尝试了字节数组和数组;并使用line_profile来分析计算)。 我遗漏了什么吗? 这是我的代码:

  • 本文向大家介绍JavaScript对象数组的排序处理方法,包括了JavaScript对象数组的排序处理方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript对象数组的排序处理方法。分享给大家供大家参考,具体如下: javascript的数组排序函数 sort方法,默认是按照ASCII 字符顺序进行升序排列。 arrayobj.sort(sortfunction); 参数: