legend2---js生成随机16进制颜色

一、总结

一句话总结:

还是要【一位一位】生成16进制颜色比较方便,如果两位一起,就会导致【颜色少位】情况,比如#5e1a3
【for i...0->5; '#'+=Math.floor(Math.random()*(n_max-n_min+1)+n_min).toString(16)】



//随机生成颜色:十六进制颜色随机
//生成n_min->n_max的颜色,范围是0->15,颜色值最大取f就是15
function random_color16(n_min,n_max){
let str='#';
for(let i=0;i<6;i++){
let per_10=Math.floor(Math.random()*(n_max-n_min+1)+n_min);
//per_10的取值不能是16,因为16会被转换成10
let per_16=per_10.toString(16);
str+=per_16;
}
return str;
}


 

 

1、js如何生成[n,m]的随机数?

【Math.random()生成[0,1)】的数,所以【Math.random()*5生成{0,5)】的数。
【Math.floor(Math.random()*(max-min+1)+min);】

 

 

二、js生成随机16进制颜色

博客对应课程的视频位置:

 

1、基础知识

Math.random()生成[0,1)的数,所以

Math.random()*5生成{0,5)的数。

 

js如何生成[n,m]的随机数

Math.floor(Math.random()*(max-min+1)+min);

 

2、不好的方案



//随机生成颜色:十六进制颜色随机,不能是白色
function random_color16(){
//let r = Math.floor(Math.random()*256);
let r = Math.floor(Math.random()*200);
let g = Math.floor(Math.random()*200);
let b = Math.floor(Math.random()*200);
let color1 = '#'+r.toString(16)+g.toString(16)+b.toString(16);
return color1;
}


这样有问题,会生成 #5e1e3 这样的颜色,这不行

 

3、较优方案



//随机生成颜色:十六进制颜色随机
//生成n_min->n_max的颜色,范围是0->15,颜色值最大取f就是15
function random_color16(n_min,n_max){
let str='#';
for(let i=0;i<6;i++){
let per_10=Math.floor(Math.random()*(n_max-n_min+1)+n_min);
//per_10的取值不能是16,因为16会被转换成10
let per_16=per_10.toString(16);
str+=per_16;
}
return str;
}


比如random_color16(1,12)

 

 

 


 


我的旨在学过的东西不再忘记(主要使用艾宾浩斯遗忘曲线算法及其它智能学习复习算法)的偏公益性质的完全免费的编程视频学习网站: ​​fanrenyi.com​​;有各种前端、后端、算法、大数据、人工智能等课程。

​版权申明:欢迎转载,但请注明出处​

一些博文中有一些参考内容因时间久远找不到来源了没有注明,如果侵权请联系我删除。