如何在两种颜色之间随机化?

时间:2016-05-22 02:35:33

标签: colors processing

我想知道如何让我的程序在两种颜色之间生成随机颜色,并且两者之间都是颜色。例如,就像我说的那样:

 
fill(random(255),0,0));

以获得范围红色。

我希望能够选择两种颜色,比方说橙色和蓝色,并让它从这两组颜色中生成颜色。因此,它可以从蓝色阴影中随机生成一种颜色,在它之间的任何阴影和特定的橙色阴影中。

我该怎么做?

1 个答案:

答案 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);