我列出了几种不同的“随机”颜色值(不少于1且不超过8种颜色)。 (随机意味着没有告诉他们相互“对比”。)
颜色以RGB值给出(可能的简化:作为HSL模型中的H值,或者在其他一些颜色系统中 - 我对原始颜色的生成方式有一定程度的控制)。
我需要计算与列表中所有颜色最“对比”(即视觉上可辨别)的单一颜色值。
对比度的实用标准,对于8种颜色的情况:
如果我们绘制9个正方形,填充我们的颜色如下:
[1][2][3] [4][X][5] [6][7][8]
方形X的颜色必须与所有相邻颜色清晰可辨。
可能的简化:将最大颜色数从8减少到4(示例中的正方形2,4,5,7,忽略对角线)。
答案 0 :(得分:1)
我认为最好的解决方案可能是:
http://www.colorsontheweb.com/colorcontrasts.asp
编辑:使用线性编程,您可以对对角线颜色赋予较低的重要性。
Edit2:最大化意味着什么: 你想最大化色调对比度,这意味着所有| Hi - result |的总和,其中Hi代表颜色i的色调,是最大化的。您甚至可以创建最小差异的条件,例如|嗨 - 结果| > HMIN。实际计算可以通过将方程式给予线性优化算法来完成,或者您可以尝试0.0到1.0之间的所有色调值,步进0.05并保存最佳结果。 http://en.wikipedia.org/wiki/Linear_programming