2016-05-22 59 views
0

我想知道如何讓我的程序能夠在兩種顏色之間生成隨機顏色,並在兩者之間生成隨機顏色。例如現在的樣子,我會說:如何在兩組顏色之間隨機化?

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

,以獲得一定範圍內的紅色。

我希望能夠選擇兩種顏色,讓我們說橙色和藍色,並讓它從這兩組顏色生成顏色。因此,它可以隨機產生一個顏色,從那個藍色的陰影,任何陰影之間,並進入一個特定的橙色陰影。

我該如何去做呢?

+0

你可能想使用[lerpColor(https://processing.org/reference/lerpColor_.html),並在0.0和1.0之間的函數隨機化'amt'參數。 – michaPau

回答

0

比方說,你有3個變量持有「基地」顏色:

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