使用 if 语句在随机矩形序列的顶部画线

Using if statements to draw lines on top of random sequence of rectangles

我正在以随机顺序绘制矩形,但我想以相同的随机顺序在这些矩形的顶部绘制线条,以在矩形顶部创建一个图案作为图层。 为什么我尝试这样做的代码的最后一部分不可见,线条位于矩形之后,因此它们也应该在矩形之后绘制,因此在顶部?

<script src="https://cdn.jsdelivr.net/npm/processing-js@1.6.6/processing.min.js"></script>

<script type="application/processing">
int spacing = 10;
int x, y;
int spacing2 = 10;
int x2, y2;

void setup() {
  size(800, 800);
  noStroke();
  background(52, 122, 235);
}

void draw() {
  float j = random(2);
  if (j < 1) {
    if (j < 0.5) {
      fill(0, 0, 255);
    }
    if (j > 0.7) {
      fill(0, 0, 155);
    }
    rect(x, y, spacing, spacing);
  }

  x = x + spacing;
  if (x > width) {
    x = 0;
    y = y + spacing;
  }

  //WHY IS THE LINES NOT SHOWING UP?
  if (j > 1) {
    line(x, y, x + spacing, y + spacing); // "\"
  } else {
    line(x, y + spacing, x + spacing, y); // "/"
  }
}
</script>
<canvas></canvas>

  1. 您从未设置笔画,因此线条不可见。
  2. 您在绘制线之前更新 x 和 y 值,因此线将位于下一个方块的位置。这意味着线条只会在未绘制正方形的位置保持可见。

<script src="https://cdn.jsdelivr.net/npm/processing-js@1.6.6/processing.min.js"></script>

<script type="application/processing">
int spacing = 10;
int x, y;
int spacing2 = 10;
int x2, y2;

void setup() {
  size(800, 800);
  noStroke();
  background(52, 122, 235);
}

void draw() {
  float j = random(2);
  if (j < 1) {
    noStroke();
    if (j < 0.5) {
      fill(0, 0, 255);
    }
    if (j > 0.7) {
      fill(0, 0, 155);
    }
    rect(x, y, spacing, spacing);
  }
  
  x = x + spacing;
  if (x > width) {
    x = 0;
    y = y + spacing;
  }

  // This wasn't showing up because there was no stroke color specified and
  // you call noStroke() in setup.
  stroke(255, 0, 0);
  if (j > 1) {
    line(x, y, x + spacing, y + spacing); // "\"
  } else {
    line(x, y + spacing, x + spacing, y); // "/"
  }
}
</script>
<canvas></canvas>