如果仅仅是这样用,和开始那种方法比,除了显得深奥,实在是没什么优点了。不过我们想再进一步做修改就容易了,刚才那个不要绿色,就可以: mycolor = new Color(this); mycolor.setRGB(random(255)<<16|random(128)<<8|random(255)); (区域4)
如果想得到红色0xff0000和黄色0xffff00之间的颜色,因为红色和黄色之间只有g在改变,可以把r和b固定,仅仅random绿色: mycolor = new Color(this); mycolor.setRGB(255<<16|random(255)<<8|0); (区域5)
再比如不希望得到太深的颜色,只需要使random值不要太小,比如rgb三色加起来不小于384吧: mycolor = new Color(this); while (r+g+b<384) { r = random(255); g = random(255); b = random(255); } //默认rgb都为0,循环执行;如果rgb相加小于384,继续random,直到r+g+b大于等于384 mycolor.setRGB(r << 16 | g << 8 | b); (区域6)