2016-05-22 2 views
0

Я хочу знать, как иметь возможность генерировать случайный цвет между двумя цветами набора и между ними. Например просто так, что я хотел бы сказать:Как рандомизировать между двумя цветами набора?

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

для того, чтобы получить диапазон красноту.

Я хочу, чтобы иметь возможность выбрать два цвета, скажем, оранжевый и синий, и пусть он генерирует цвета из этих двух наборов цветов. Поэтому для того, чтобы он случайно генерировал цвет из этого оттенка синего, любой оттенок между ним и в определенном оттенке оранжевого.

Как мне это сделать?

+0

Вы, вероятно, хотите использовать [lerpColor] (https://processing.org/reference/lerpColor_.html) и рандомизации 'amt' параметр в этой функции между 0,0 и 1,0. – 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); 

Смежные вопросы