1

我对处理仍然非常陌生,我现在只是在玩弄它。当我单击鼠标时,我希望了解如何在两种颜色之间更改背景颜色,尤其是在白色和黑色之间。我在网上找到了一个代码,它的背景颜色在几种不同的颜色之间变化,但我似乎无法弄清楚如何在两种颜色之间改变背景颜色。我特别喜欢 'col+=' 和 'col%=' 代表什么,因为我似乎无法在处理教程中找到它。请帮我!谢谢!下面是我找到的代码。

void setup() {
  size(600,400);
  smooth();
colorMode(HSB);

}

int col = 0;
void draw() {
  background(col,255,255);

}

void mousePressed(){
col+=20;
col%=255;
println(col);
}
4

1 回答 1

2

“x += y”是“x = x + y”的简写,同样,“x %=y”是“x = x % y”的简写(其中 % 是取模运算符)。

我假设您想问的是“我如何将背景从一种颜色更改为另一种颜色,然后再变回来”;有两种基本方法可以做到这一点。

1:设置两个(或更多)参考颜色,一个额外的“当前”颜色,然后更改“当前”指向的内容,从中绘制背景:

color c1 = color(255,0,0), c2 = color(0,0,255), current;
void setup() { current = c1; }
void draw() { background(current); }
void mousePressed() { if(current==c1) { current = c2; } else { current = c1; }}

每次单击时,程序都会检查“当前”指向的两种颜色中的哪一种,然后将其指向另一种颜色。

2:设置一种颜色,并应用一些以 1 或 2 或...为模的运算步骤:

color c = color(255,0,0);
void draw() { background(c); }
void mousePressed() { c = color( red(c), (green(c)+50)%255, blue(c)); }

每次单击时,颜色“c”的绿色分量增加 50,然后模校正为 255。因此它将循环:0、50、100、150、200、250、300%255=45 , 95, 145, 195, 245, 295%255=40, 90 等

于 2013-05-05T02:43:33.853 回答