Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 更改HSB颜色模式下的不透明度_Java_Colors_Processing_Opacity_Hsb - Fatal编程技术网

Java 更改HSB颜色模式下的不透明度

Java 更改HSB颜色模式下的不透明度,java,colors,processing,opacity,hsb,Java,Colors,Processing,Opacity,Hsb,我正在尝试更改笔划的不透明度,但不确定如何在HSB颜色模式下更改。或者,如果我切换到RGB模式,如何使颜色随时间变化 这是我的代码:(如有任何帮助,将不胜感激) float彩虹=0; int dir=1; 无效设置(){ 大小(600600); 背景(0); 彩色模式(HSB,255); } 作废提款(){ if(彩虹0&&dir==-1){ 彩虹--; } 如果(彩虹==255){ dir*=-1; } 如果(彩虹==0){ dir*=-1; } 笔划(彩虹,255200); 线条(mous

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

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

float彩虹=0;
int dir=1;
无效设置(){
大小(600600);
背景(0);
彩色模式(HSB,255);
} 
作废提款(){
if(彩虹<255&&dir==1){
彩虹++;
}
如果(彩虹>0&&dir==-1){
彩虹--;
}
如果(彩虹==255){
dir*=-1;
}
如果(彩虹==0){
dir*=-1;
}
笔划(彩虹,255200);
线条(mouseX、mouseY、宽度/2、高度/2);
如果(鼠标按下){
笔划(彩虹,255200);
行(mouseX,mouseY,0,mouseX);
}
如果(鼠标按下){
笔划(彩虹,100200);
线路(mouseX,mouseY,600,mouseX);
}
}

您可以为
stroke()
fill()
函数提供第四个不透明度参数。下面是一个简单的例子:

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

void draw(){
  fill(0, 255, 200, 100);
  ellipse(mouseX, mouseY, 20, 20);
}
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);
}
请注意,您还可以使用RGB模式并随时间修改R、G和B参数。这将比在HSB值之间循环稍微复杂一些,但是您可以创建任何您想要的模式。下面是一个简单的例子:

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

void draw(){
  fill(0, 255, 200, 100);
  ellipse(mouseX, mouseY, 20, 20);
}
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);
}
float r=0;
浮点数g=0;
浮动b=0;
浮点数=1;
float-deltaG=2;
浮点数=4;
无效设置(){
大小(500500);
背景(255);
}
作废提款(){
r+=德尔塔;
g+=deltaG;
b+=deltaB;
如果(r<0 | | r>255){
deltaR*=-1;
r=约束(r,0,255);
}
如果(g<0 | | g>255){
deltaG*=-1;
g=约束(g,0,255);
}
如果(b<0 | | b>255){
deltaB*=-1;
b=约束(b,0,255);
}
填充物(r、g、b);
椭圆(mouseX,mouseY,20,20);
}

您能解释一下我如何随着时间的推移修改RGB参数吗?