在处理中使用 loadPixels() 进行渐变

Gradients with loadPixels() in Processing

大家好——我正在尝试在草图的背景中绘制一个径向渐变——我正在尝试通过操纵像素来实现这一点,就像丹尼尔·希夫曼 (daniel shiffman) 的示例一样——到目前为止一切顺利——它的工作原理如下这应该!但是——现在我希望径向渐变是红色的——而草图的外部是黑色的……所以就像下面的代码示例一样,但是颠倒了! 我尝试了很多东西——尝试了 RGB 值——反转了 dist(); 的值。功能——想到 map(); – 试图改变像素的计算 – 没有成功 – 我错过了什么或者有人可以向我解释一下吗?我知道代码的作用 - 但无法将其倒置......有人有想法并且可以向我解释吗?我真的卡住了……

void setup() {
 size(1080, 1080);
}

void draw() {
     loadPixels();
  for (int x = 0; x < width; x++) {
    for (int y = 0; y < height; y++) {
      float d = dist(width/2, height/2, x, y);
      pixels[x+y*width] = color(255,d,255);
    }
  }
  updatePixels();
}

感谢您的帮助!

给你:

void setup() {
  size(1080, 1080);
}

void draw() {
  loadPixels();
  for (int x = 0; x < width; x++) {
    for (int y = 0; y < height; y++) {
      float d = dist(width/2, height/2, x, y);
      pixels[x+y*width] = color(255-d, 0, 0);
    }
  }
  updatePixels();
}

技巧如下:

RGB 表示红-绿-蓝。它们是三种颜色,混合在一起将构成其他颜色。数字是颜色的亮度,因此 [255, 0, 0] 将是鲜红色。 255 到处都是白色,0 到处都是黑色。

你已经接近尝试反转距离了,但这里简单的答案是在颜色级别反转它,让它的范围从 255 而不是 到 255。这就是我写它的原因255 - d。那么,离中心越远,越接近零

玩得开心!