2016-05-22 4 views
0

Ich möchte wissen, wie ich in der Lage sein kann, mit meinem Programm eine zufällige Farbe zwischen zwei gesetzten Farben und allen dazwischen zu erzeugen. Zum Beispiel nur die Art und Weise, dass ich sagen würde:Wie man zwischen zwei gesetzten Farben randomisiert?

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

, um einen Bereich Rottöne zu erhalten.

Ich möchte in der Lage sein, zwei Farben zu wählen, sagen wir Orange und Blau, und lassen Sie Farben aus diesen zwei Farben erzeugen. Also, um zufällig eine Farbe aus diesem Blauton zu erzeugen, jede Farbe dazwischen und in einen bestimmten Orangeton.

Wie gehe ich dabei vor?

+0

Sie wollen wahrscheinlich verwenden [lerpColor] (https://processing.org/reference/lerpColor_.html) und Randomisierung der 'amt' Parameter in dieser Funktion zwischen 0,0 und 1,0. – michaPau

Antwort

0

Angenommen, Sie haben drei Variablen, die die „Basis“ Farbe halten:

float baseR = 50; 
float baseG = 100; 
float baseB = 200; 

Sie könnten dann eine Zufallszahl auf diese Werte hinzufügen, um einen neuen Farbton „um“ diese Farbe zu erhalten:

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

Oder wenn Sie zwei Farben haben, die Sie mischen wollen, können Sie die lerpColor() Funktion:

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