algorithm - 根据计数均匀分布的颜色范围

标签 algorithm colors distribution

我有一个传说,我需要颜色协调并且有几乎无限的颜色范围(就 50-100 个标识符而言是无限的。我想像彩虹一样使用色谱并均匀分布来自图例中的项目数。例如。

我有 A、B 和 C 池,并希望通过颜色区分它们。 A 是红色,B 是橙色,C 是绿色,等等。我想使用从 000000 到 FFFFFF 的十六进制颜色代码动态地计算出这一点。所以我的游泳池会平均选择该范围内的三种颜色。如果我有 10 个池,它会平均选择 10 种颜色,依此类推。执行此操作的最佳算法是什么?

这将在 javascript 中完成,但希望在 SASS 中完成。

最佳答案

我强烈建议让算法成为人类:让懂行的人为您选择 100 种颜色(最赏心悦目的优先),将其用作静态数组并仅使用索引 0 ..N-1.

也就是说:一种常见的算法是使用 PAL/NTSC 颜色模型:

R=Y+V/0.88
G=Y-0.38*U-0.58*V
B=Y+U/0.49

U/V 是颜色的坐标,Y 是亮度。

因此,您在 U/V 平面中创建一个半径为 1 且中心位于 0/0 的圆,并在其上标记 N 个点 - 这很容易完成U=cos(phi)、V=sin(phi) 和 phi 在 N 步中移动 0..360 度。这将为您提供一个包含 N (U/V) 个元组的数组。

使用令人赏心悦目的 Y(大约 0.5),您可以像上面那样计算 RGB 值,从而得到一个包含 N (R/G/B) 个元组的数组。

关于algorithm - 根据计数均匀分布的颜色范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10731147/

相关文章:

用于对多个 True 或 False 测试进行评分的 C++ 程序

ruby - 如何在 Eclipse 的 ruby​​ 插件中自定义编辑器的背景颜色?

perl - 如何在不安装新 Perl 的情况下安装或升级最新 Perl 中的 CPAN 模块?

python - Tensorflow,负 KL 散度

algorithm - 获取颜色联合的可能性以生成另一种颜色

Python:判断跨n个数组的路径中的每一步是否都低于阈值

colors - 找到与给定 CIEL*a*b* 颜色最接近的 sRGB 可表示颜色

python - 获取给定累积概率的随机变量的值 (Python)

algorithm - 如何更新 Dijkstra 算法中松弛顶点的 key ?

javascript - 尝试使用 javascript 根据一天中的时间更改我的导航栏颜色