我想知道如何让我的程序在两种颜色之间生成随机颜色,并且两者之间都是颜色。例如,就像我说的那样:
fill(random(255),0,0));
以获得范围红色。
我希望能够选择两种颜色,比方说橙色和蓝色,并让它从这两组颜色中生成颜色。因此,它可以从蓝色阴影中随机生成一种颜色,在它之间的任何阴影和特定的橙色阴影中。
我该怎么做?
答案 0 :(得分:0)
让我们假设您有3个变量来保存" base"颜色:
float baseR = 50;
float baseG = 100;
float baseB = 200;
然后,您可以为这些值添加一个随机数,以获得新的阴影""那种颜色:
float shadeDistance = 10;
float r = baseR + random(-shadeDistance, shadeDistance);
float g = baseG + random(-shadeDistance, shadeDistance);
float b = baseB + random(-shadeDistance, shadeDistance);
fill(r, g, b);
或者,如果您要混合两种颜色,则可以使用lerpColor()
功能:
stroke(255);
background(51);
color from = color(204, 102, 0);
color to = color(0, 102, 153);
color interA = lerpColor(from, to, .33);
color interB = lerpColor(from, to, .66);
fill(from);
rect(10, 20, 20, 60);
fill(interA);
rect(30, 20, 20, 60);
fill(interB);
rect(50, 20, 20, 60);
fill(to);
rect(70, 20, 20, 60);