Java 更改HSB颜色模式下的不透明度
我正在尝试更改笔划的不透明度,但不确定如何在HSB颜色模式下更改。或者,如果我切换到RGB模式,如何使颜色随时间变化 这是我的代码:(如有任何帮助,将不胜感激)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
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参数吗?