需求是要随机 颜色要亮色 不要暗色
我没找到亮色的规律是什么
要怎么做?
如果用 HSL 格式就不用纠结了,因为 HSL 中的 L 值就代表亮度,只要保证这个 L 大于某个阈值,它就是“亮色”了,RGB 虽然从物理上来说容易理解,但实际上不符合人类的直觉。
/**
* @function lightColorGen - 亮色生成器
* @param { Number } minLight - 最低亮度,在[0, 100]区间
* @returns { String } 颜色
*/
function lightColorGen(minLight){
const { random } = Math;
const mH = 360, // 色相环角度范围
mS = 100; // 饱和度范围
mL = 100 - minLight; // 亮度范围
const H = ~~mH * random(),
S = ~~mS * random(),
L = minLight + (~~mL * random());
return `HSL(${H}, ${S}%, ${L}%)`;
}
8 回答4.5k 阅读✓ 已解决
6 回答3.1k 阅读✓ 已解决
5 回答2.7k 阅读✓ 已解决
6 回答2.2k 阅读
5 回答6.2k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
4 回答2.7k 阅读✓ 已解决
很久之前做过这个,你可以试试。
以 rgb 作为亮色颜色评判标准的话,那么 r、g、b 必须有一个值很小,一个值很大,最后一个随机。也就是对应下面的 a、b、c。代码如下:
output 为你所需要的。