在HSB色彩模式下更改不透明度

时间:2018-11-12 01:32:47

标签: java colors processing opacity hsb

我正在尝试更改笔触的不透明度,但不确定如何在HSB彩色模式下进行。或者,如果我切换到RGB模式,如何使颜色随时间变化?

这是我的代码:(任何帮助将不胜感激)

BLModel

1 个答案:

答案 0 :(得分:0)

您可以为stroke()fill()函数赋予不透明度的第四个参数。这是一个简单的示例:

void setup(){
  size(500, 500);
  colorMode(HSB, 255);
  background(255);
}

void draw(){
  fill(0, 255, 200, 100);
  ellipse(mouseX, mouseY, 20, 20);
}

请注意,您还可以使用RGB模式并随时间修改R,G和B参数。这比遍历HSB值要复杂一些,但是您可以创建所需的任何模式。这是一个简单的示例:

float r = 0;
float g = 0;
float b = 0;

float deltaR = 1;
float deltaG = 2;
float deltaB = 4;

void setup(){
  size(500, 500);
  background(255);
}

void draw(){

  r += deltaR;
  g += deltaG;
  b += deltaB;

  if(r < 0 || r > 255){
    deltaR *= -1;
    r = constrain(r, 0, 255);
  }

  if(g < 0 || g > 255){
   deltaG *= -1;
   g = constrain(g, 0, 255);
  }

  if(b < 0 || b > 255){
    deltaB *= -1;
    b = constrain(b, 0, 255);
  }

  fill(r, g, b);
  ellipse(mouseX, mouseY, 20, 20);
}