首页 >Java >java教程 >我们如何自动生成 N 种视觉上不同的颜色?

我们如何自动生成 N 种视觉上不同的颜色?

Patricia Arquette
Patricia Arquette原创
2024-10-28 19:42:29337浏览

How Can We Generate N Visually Distinct Colors Automatically?

如何自动生成 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn