我喜欢随机颜色生成算法proposed here by David Crow,但我想知道是否有办法将结果集中在一种颜色上并调节结果。
我的程序将生成跟踪许多变量的图表。每个变量属于7个类别之一。我想为这些变量生成线色,这些变量清晰,独特,色调,饱和度和亮度都在与其类别相关的根色的近似范围内。例如,类别Red的变量将是红色的各种易读和可辨别的变体。
一种解决方案可能是声明根颜色,加上色调,饱和度和亮度的上下边界。然后,我可以从这些范围内随机拉出值,但是有更好的方法在这三个维度内进行跳房子,以便产生的颜色具有相当大的变化量,但仍留有空间增长吗?例如,假设每个管道都是一个范围值,每一行都是一个迭代:
01 > |---------------|---------------|
02 > |-------|-------|---------------|
03 > |-------|-------|-------|-------|
04 > |---|---|-------|-------|-------|
05 > |---|---|---|---|-------|-------|
06 > |---|---|---|---|---|---|-------|
07 > |---|---|---|---|---|---|---|---|
08 > |-|-|---|---|---|---|---|---|---|
09 > |-|-|-|-|---|---|---|---|---|---|
10 > |-|-|-|-|-|-|---|---|---|---|---|
11 > |-|-|-|-|-|-|-|-|---|---|---|---|
12 > |-|-|-|-|-|-|-|-|-|-|---|---|---|
13 > |-|-|-|-|-|-|-|-|-|-|-|-|---|---|
14 > |-|-|-|-|-|-|-|-|-|-|-|-|-|-|---|
15 > |-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
最好的方法是什么?或者这甚至是我问题的最佳解决方案?单个图表可能不会绘制超过4个或5个变量,但可以绘制的变量数量可能是数百个。
感谢您的帮助。
答案 0 :(得分:3)
您可以将此视为3D中的sphere-packing问题:您希望颜色彼此之间的距离相等。最好的安排取决于您需要的变体颜色的数量,找到最佳解决方案并不简单。然而,一个简单的机制可能是保存一系列面心立方坐标,从(0,0,0)开始并按距离该原点的距离排序,并按顺序使用它们作为你的" base& #34;颜色(通过一个参数进行缩放,该参数设置 彼此之间的差异)。
如果您想最大限度地关注细节,请注意color theory中的研究人员和感知者已经测量了可见色域中可辨别的最小色差。您可以使用此数据调整颜色偏移矢量(使用矩阵乘法,代替上述简单缩放),以确保您的颜色差异看起来相同。