3D 数组的问题使得绘制函数表现得很奇怪

Problem wih 3D array making draw function that acts strange

我编写这段代码是为了检查 3D 数组及其工作原理。我有一个简单的代码,应该首先存储值,然后在绘图部分调用它们。 而不是绘制适当的点网格,只有 1 个点出现在 about(110,5)

当我不使用数组访问颜色,而是创建它们时,我已确保该程序可以运行 "on the spot"。然后它按预期工作。

color [][][]array = new color[10][10][10];
int x = 0;
int y = 0;

void setup(){
  size(1100,1000);
  background(0);
  for(int i= 0; i < 10; i++){
    for(int j= 0; i < 10; i++){
      for(int k= 0; i < 10; i++){
        array[1][j][k] = color(i*25.5,j*25.5,k*25.5);
      }
    }
  }
}
void draw(){
  background(0);
  strokeWeight(0);
  stroke(0);
  for(int s= 0; s < 10; s++){
    x= 110*s;
    y= 110*s;
    for(int v= 0; v < 10; v++){
      for(int t= 0; t < 10; t++){
        fill(array[s][v][t]);
        ellipse(x+t*10+5,v*10+5,10,10);
      }
    }
  }

}

您似乎没有在设置中的三重 for 循环中递增 j/k,这里是固定代码:

color [][][]array = new color[10][10][10];
int x = 0;
int y = 0;

void setup(){
  size(1100,1000);
  background(0);
  for(int i= 0; i < 10; i++){
    for(int j= 0; j < 10; j++){
      for(int k= 0; k < 10; k++){
        array[1][j][k] = color(i*25.5,j*25.5,k*25.5);
      }
    }
  }
}
void draw(){
  background(0);
  strokeWeight(0);
  stroke(0);
  for(int s= 0; s < 10; s++){
    x= 110*s;
    y= 110*s;
    for(int v= 0; v < 10; v++){
      for(int t= 0; t < 10; t++){
        fill(array[s][v][t]);
        ellipse(x+t*10+5,v*10+5,10,10);
      }
    }
  }

}