我正在尝试将具有浅蓝色的颜色随机化。
我知道我可以得到所有颜色:
rgb(110, 179, 185), rgb(110, 179, 186), .... ,rgb(110, 179, 255);
和
rgb(110, 178, 185), ... , rgb(110, 178, 255);
但存在很多变化..
有可能吗?
我有一个随机化颜色的函数:
function get_random_color() {
var letters = '0123456789ABCDEF'.split('');
var color = '#';
for (var i = 0; i < 6; i++ ) {
color += letters[Math.round(Math.random() * 15)];
}
return color;
}
我找到了这段代码:
任何帮助表示赞赏!
答案 0 :(得分:2)
嗯,一种方法就是改变你找到的功能并调整你的需求:
function randHex(a, b) {
return (Math.floor(Math.random() * a) + b).toString(16);
}
function randColor() {
return "6E" + randHex(20, 160) + "" + randHex(56, 200);
}
这将返回颜色,110为红色,160至180为绿色,56至256为蓝色。
答案 1 :(得分:2)
你走了:
function get_random_blue() {
return "rgb(110,"
+ ((179 - Math.random()*2) <<0) + ","
+ ((200 + Math.random()*55) <<0) + ")";
}
样品使用:
get_random_blue() // "rgb(110,177,222)"
get_random_blue() // "rgb(110,177,243)"
get_random_blue() // "rgb(110,177,200)"
get_random_blue() // "rgb(110,178,225)"
get_random_blue() // "rgb(110,178,209)"
get_random_blue() // "rgb(110,178,244)"
答案 2 :(得分:1)
H i,也许这应该是一个评论,但它变得越来越大,所以我会把它扔到这里
红绿蓝是RGB
在你的例子中你会注意到RGB的最后一个数字更高,这就是你的颜色会被认为更蓝的东西,只要那个频道高于其他数字(R和G),你就会创建一个颜色被认为是“蓝色”。
像混音台一样,通道被推得更高,声音更大。 (希望那里不要吃鸡蛋)
因此,在随机颜色函数中,您需要设置一些规则:
答案 3 :(得分:1)
我建议您使用其他颜色模型,如HSV或HSL。选择所需颜色(由色调表示)然后随机化其他属性(饱和度和值/亮度)要容易得多。样品使用:
function rand(min, max) {
// return float random between min and max;
}
var randBlue = hsl2rgb(240, 1, rand(0.7, 0.9));
此处已更新fiddle