Bri*_*aro 296 algorithm colors
我正在寻找一种简单的算法来生成大量随机,美观的颜色.所以没有疯狂的霓虹色,颜色让人想起粪便等.
我找到了这个问题的解决方案,但他们依赖于替代调色板而不是RGB.我宁愿只使用直RGB而不是来回映射.这些其他解决方案最多也只能生成32个左右的令人愉悦的随机颜色.
任何想法都会很棒.
Dav*_*row 419
您可以将随机颜色的RGB值与常量颜色的RGB值进行平均:
(Java中的例子)
public Color generateRandomColor(Color mix) {
Random random = new Random();
int red = random.nextInt(256);
int green = random.nextInt(256);
int blue = random.nextInt(256);
// mix the color
if (mix != null) {
red = (red + mix.getRed()) / 2;
green = (green + mix.getGreen()) / 2;
blue = (blue + mix.getBlue()) / 2;
}
Color color = new Color(red, green, blue);
return color;
}
Run Code Online (Sandbox Code Playgroud)
将随机颜色与白色(255,255,255)混合可通过增加亮度同时保持原始色调的色调来创建中性色调.这些随机生成的粉彩通常很好地结合在一起,特别是大量.
以下是使用上述方法生成的一些柔和色彩:

您还可以将随机颜色与常量柔和色调混合,从而产生一组有色的中性色.例如,使用浅蓝色会创建如下颜色:

更进一步,您可以在生成器中添加启发式算法,考虑补色或阴影级别,但这一切都取决于您想要使用随机颜色实现的印象.
一些额外的资源:
Fgb*_*nch 84
我会使用色轮并给出一个随机位置你可以添加金色角度(137,5度)
http://en.wikipedia.org/wiki/Golden_angle
为了在每次不重叠时获得不同的颜色.
调整色轮的亮度,您也可以获得不同的亮/暗颜色组合.
我发现这篇博文很好地解释了使用黄金比例的问题和解决方案.
http://martin.ankerl.com/2009/12/09/how-to-create-random-colors-programmatically/
更新:我刚刚发现了另一种方法:
它被称为RYB(红色,黄色,蓝色)方法,它在本文中描述:
http://threekings.tk/mirror/ryb_TR.pdf
作为"Paint Inspired Color Compositing".
算法生成颜色,并选择每种新颜色以最大化其与先前所选颜色的欧几里德距离.
在这里你可以找到一个很好的javascript实现:
http://afriggeri.github.com/RYB/
更新2:
Sciences Po Medialb刚刚发布了一款名为"我想要Hue"的工具,可以为数据科学家生成调色板.使用不同的颜色空间并使用k-means聚类或力矢量生成调色板(排斥图)这些方法的结果非常好,它们在其网页中显示了理论和实现.
http://tools.medialab.sciences-po.fr/iwanthue/index.php
mot*_*bói 23
在javascript中:
function pastelColors(){
var r = (Math.round(Math.random()* 127) + 127).toString(16);
var g = (Math.round(Math.random()* 127) + 127).toString(16);
var b = (Math.round(Math.random()* 127) + 127).toString(16);
return '#' + r + g + b;
}
Run Code Online (Sandbox Code Playgroud)
在这里看到了这个想法:http://blog.functionalfun.net/2008/07/random-pastel-colour-generator.html
Nic*_*son 11
转换到另一个调色板是一种非常优越的方法.他们这样做是有原因的:其他调色板是"感性的" - 也就是说,它们将类似的看似颜色放在一起,调整一个变量会以可预测的方式改变颜色.对于RGB来说,这一切都不是真的,在这些颜色之间没有明显的关系.
一个不容忽视的答案,因为它简单且具有优势,就是现实生活照片和绘画的采样。在现代艺术图片、塞尚、梵高、莫奈、照片的缩略图上采样尽可能多的随机像素,随机颜色……优点是您可以按主题获取颜色,而且它们是有机颜色。只需将 20 - 30 张图片放在一个文件夹中,然后每次随机抽取一张随机图片。
转换为 HSV 值是一种广泛用于基于心理的调色板的代码算法。hsv 更容易随机化。