gpt4 book ai didi

javascript - 如何在javascript中生成仅变暗的随机颜色?

转载 作者:行者123 更新时间:2023-11-28 11:59:52 24 4
gpt4 key购买 nike

我一直在阅读有关如何在 JS/JQuery 中生成随机颜色的问题。但我只想生成较暗的颜色,避免使用黑色、黄色和灰色范围的颜色,以便能够在谷歌地图中用不同的颜色绘制区域。

谢谢

最佳答案

var hue = Math.floor(Math.random() * 360),
saturation = Math.floor(Math.random() * 100),
lightness = Math.floor(Math.random() * 50),
color = "hsl(" + hue + ", " + saturation + "%, " + lightness + "%)";

那是生成随机的 hsl 颜色。但如果您想让现有的 RGB 颜色变暗,最好的办法是将其转换为 HSL,然后根据您的需要设置其亮度值。享受这些功能的乐趣:

function rgbToHsl(r, g, b) {
var maxRGB = Math.max(r, g, b),
minRGB = Math.min(r, g, b),
tmp, h, s, l;
tmp = maxRGB - minRGB;
l = (maxRGB + minRGB)/255;
if (tmp) {
s = Math.round(tmp/(l < 1 ? l : 2 - l))/255;
if (r === maxRGB) h = (g - b)/tmp;
else if (g === maxRGB) h = 2 + (b - r)/tmp;
else h = 4 + (r - g)/tmp;
h = (h < 0 ? h + 6 : h)*60 % 360;
} else h = s = 0;
l /= 2;
return [h, s, l];
}
function hslToRgb(h, s, l) {
if (!s) return r = g = b = l*255;
var q = l < .5 ? l*(1 + s) : l + s - l*s,
p = 2*l - q;

for (var i = 120, t, c = []; i >= -120; i -= 120) {
t = h + i;
if (t < 0) t += 360;
else if (t >= 360) t -= 360;
if (t < 60) c.push(p + (q - p)*t/60);
else if (t < 180) c.push(q);
else if (t < 240) c.push(p + (q - p)*(240 - t)/60);
else c.push(p);
}
return [c[0]*255, c[1]*255, c[2]*255];
}

这里,sl的范围是从01rgb0255 以及 h0 359

关于javascript - 如何在javascript中生成仅变暗的随机颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17338762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com