JS随机生成色盘值
今天遇到个问题,然后问阿开,阿开说不能用随机数。如下是阿开教的代码。
代码:
注释:
这个amplitude变小色盘就会变按。反正三个参数,一个评论一个偏移量,还有一个啥忘记了。三个调一下能调出不同的色盘然后你挑完以后只要复制这一块把三个参数带进去。
red = Math.sin(0.2*i + 0) * amplitude + center;
green = Math.sin(0.2*i +j) * amplitude + center;
blue = Math.sin(0.2*i +j*2) * amplitude + center;
然后随机一个0-32的整数
可复制代码运行:
<script>
//将rgb转换成16进制
function RGB2Color(r,g,b)
{
return '#' +
byte2Hex(r) +
byte2Hex(g) +
byte2Hex(b);
}
//将rgb分量装换成对应的两位十六进制形式 170=>AA
function byte2Hex(n)
{
var nybHexString =
"0123456789ABCDEF";
return String(nybHexString.substr((n >>
4) & 0x0F,1)) +
nybHexString.substr(n &
0x0F,1);
}
//4位二进制数对应一个十六进制数 170>>1 = 85 170>>3 = 21 m>>n = m/2^n 并取整
//n & 0x0F = n%16
var j= 1/6;
var frequency = 0.2;
var amplitude = 128;
var center = 20
while(j<=2){
for (var
i = 0;
i < 64; ++i)
{
red = Math.sin(frequency *
i + 0) *
amplitude + center;
green = Math.sin(frequency*i +j) *
amplitude + center;
blue = Math.sin(frequency*i +j*2)
* amplitude + center;
document.write( '<font
color="' + RGB2Color(red,green,blue) + '">█</font>');
}
document.write(
'<br />');
j+=1/6;
}
</script>