math.random,产生随机数值,让这个数值代表一种颜色。java可以用sleep控制一下时间,当然最好用时间片(自己做个时间片的函数)
按需定制可以根据自己的需求进行定制,成都网站设计、网站制作构思过程中功能建设理应排到主要部位公司成都网站设计、网站制作的运用实际效果公司网站制作网站建立与制做的实际意义
说下思路,不一定对,随机颜色的化,每次随机三个 0到255的数字,组合成一个RGB,应该就可以了,现在的问题是,区分颜色之间的鲜明程度。定义一个阈值A
A= (r1-r2)^2+(g1-g2)^2+(b1-b2)^2 根据这样来计算,每生成一种颜色,就把这种颜色跟其余颜色的阈值计算出来,如果全都满足,那么就可以,如果有一个不满足,那就重新随机生成一次。
A具体的值是多少,这个你可以摸索下,设置太大的化,随机生成的颜色的数量,可能不够,太小的化,颜色的鲜明程度不满足。
实际上,上面A的公式来计算 颜色的鲜明程度 是错误的,不能这样算。
将33个按钮放到一个对象数组里面。然后用取7个随机数代表数组的序号,用这个序号到数组中获取按钮对象,然后改变颜色。获取随机数的代码如下:
Random random1 = new Random(33);
for(int i=0;i7;i++){
int index=random1.nextInt();
}
//将背景色的值定义成空字符串
var bgColor="";
//循环6次,生成一个随机的六位数
for (var i = 0 ; i 6 ; i++)
{
bgColor += "" + Math.round(Math.random() * 9);
}
//将随机生成的背景颜色值赋给页面的背景色。
document.getElementById("test")
.style.backgroundColor="#" + bgColor;
把下面的代码放在一个空网页的最后体验一下。
SCRIPT language=javascript type=text/javascript
var a=Math.round(Math.random()*0x1000000);
var c="00000".concat(a.toString(16));
document.bgColor="#"+c.substr(c.length-6,6);
/SCRIPT
/**
* 获取十六进制的颜色代码.例如 "#6E36B4" , For HTML ,
* @return String
*/
public static String getRandColorCode(){
String r,g,b;
Random random = new Random();
r = Integer.toHexString(random.nextInt(256)).toUpperCase();
g = Integer.toHexString(random.nextInt(256)).toUpperCase();
b = Integer.toHexString(random.nextInt(256)).toUpperCase();
r = r.length()==1 ? "0" + r : r ;
g = g.length()==1 ? "0" + g : g ;
b = b.length()==1 ? "0" + b : b ;
return r+g+b;
}
for循环里面的x1,y1...的值没有变化过,
把
x1=(int)((Math.random())*400);
x2=(int)((Math.random())*400);
y1=(int)((Math.random())*400);
y2=(int)((Math.random())*400);
放到for循环体里面去