Home > Java > javaTutorial > body text

How Can We Generate N Visually Distinct Colors Automatically?

Patricia Arquette
Release: 2024-10-28 19:42:29
Original
252 people have browsed it

How Can We Generate N Visually Distinct Colors Automatically?

How to Automatically Generate N "Distinct" Colors?

The question poses the challenge of creating N visually distinct colors. While piecewise linear functions on the RGB cube can generate colors, they may not always be noticeably different. Other methods include dividing the RGB cube into a lattice and sampling points.

However, the provided solutions still fall short of optimality.

Arbitrary N

  • "Colour displays for categorical images" provides a free downloadable solution.
  • "A WEB SERVICE TO PERSONALISE MAP COLOURING" offers a webservice solution that will be available soon.
  • "An Algorithm for the Selection of High-Contrast Color Sets" provides a free C implementation.
  • "High-contrast sets of colors" presents the first algorithm for solving this problem.

N is Finite and Relatively Small

Given a small N, consider using lists of predefined colors:

  • Boynton's list of 11 almost never confused colors
  • Kelly's 22 colors of maximum contrast
  • A list created by an MIT student

The mentioned articles also offer useful tools for converting between color systems:

  • Color Theory: How to convert Munsell HVC to RGB/HSB/HSL
  • http://chem8.org/uch/space-55036-do-blog-id-5333.html
  • https://metacpan.org/pod/Color::Library::Dictionary::NBS_ISCC

Code Implementations of predefined color lists in C#:

  • Kelly's Max Contrast Set
  • Boynton's Optimized

Predefined Colors in Hex and 8-Bit-Per-Channel:

  • Python implementation of Kelly's colors
  • JavaFX implementation of Kelly's colors

Additional Tips:

  • Remember to sort colors based on hue to ensure maximum distinction.
  • Avoid colors in Boynton's and Kelly's lists for people with defective color vision.

The above is the detailed content of How Can We Generate N Visually Distinct Colors Automatically?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!