【问题标题】:Gradients with loadPixels() in Processing处理中带有 loadPixels() 的渐变
【发布时间】:2020-12-08 15:23:28
【问题描述】:

大家好——我正在尝试在我的草图的背景中绘制径向渐变——我正在尝试通过像 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();
}

感谢您的任何帮助!

【问题讨论】:

    标签: java processing radial-gradients


    【解决方案1】:

    给你:

    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 处处处为黑色。

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

    玩得开心!

    【讨论】:

    • 太棒了!超好的!是的,这就是逻辑!非常感谢您向我解释!
    猜你喜欢
    • 1970-01-01
    • 2018-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-25
    • 2016-02-27
    • 1970-01-01
    • 2022-01-15
    相关资源
    最近更新 更多