【发布时间】:2014-04-14 16:23:44
【问题描述】:
我想查看随机生成的颜色列表并检查它们是否彼此不同。不像colour1 == colour2,但要确保生成的颜色不太相似。
我的意思是使用此代码(或类似代码)来生成颜色列表:
Random randomGenerator = new Random();
ArrayList<Color> colours = new ArrayList<Color>();
while(true) {
int red = randomGenerator.nextInt(255);
int green = randomGenerator.nextInt(255);
int blue = randomGenerator.nextInt(255);
Color randomColour = new Color(red,green,blue);
if(!colours.contains(randomColour)) {
colours.add(randomColour);
}
if(colours.size() >= 100) {
break;
}
}
【问题讨论】:
-
那么当前的实现有什么问题??
-
你有没有想过颜色相似度的定义?例如,当一种颜色的绝对 rgb 差异之和小于 15 时,一种颜色与另一种颜色相似。
-
应该是 nextInt(256)
-
正如 reto 所指出的,这完全取决于您对“相似性”的衡量。 (不是在谈论尝试创建 16777217 种“不太相似”的颜色......)
标签: java list random colors generator