如何自动生成 N 个“不同”颜色?
这个问题提出了创建 N 个视觉上不同的颜色的挑战。虽然 RGB 立方体上的分段线性函数可以生成颜色,但它们可能并不总是明显不同。其他方法包括将 RGB 立方体划分为格子和采样点。
但是,提供的解决方案仍然达不到最优性。
任意 N
- “分类图像的颜色显示”提供了免费下载的解决方案。
- “个性化地图着色的网络服务”提供了即将推出的网络服务解决方案。
- “An “高对比度颜色集选择算法”提供了免费的 C 实现。
- “高对比度颜色集”提出了解决此问题的第一个算法。
N 是有限且相对较小的
给定一个小 N,请考虑使用预定义颜色列表:
- Boynton 的 11 种几乎从不混淆的颜色列表
- Kelly 的 22 种最大对比度颜色
- 麻省理工学院学生创建的列表
提到的文章还提供了在颜色系统之间进行转换的有用工具:
- 颜色理论:如何将 Munsell HVC 转换为 RGB/HSB/HSL
- http://chem8.org/uch/space-55036-do-blog-id-5333.html
- https://metacpan.org/pod/Color::Library::Dictionary::NBS_ISCC
C# 中预定义颜色列表的代码实现:
- Kelly 的最大对比度设置
- Boynton 的优化
十六进制和每通道 8 位的预定义颜色:
- Kelly 颜色的 Python 实现
- Kelly 颜色的 JavaFX 实现
其他提示:
- 记住对颜色进行排序基于色调,以确保最大程度的区分。
- 避免使用 Boynton 和 Kelly 为有色觉缺陷的人列出的颜色。
以上是我们如何自动生成 N 种视觉上不同的颜色?的详细内容。更多信息请关注PHP中文网其他相关文章!