N 個の「異なる」色を自動的に生成するには?
この質問は、視覚的に異なる N 色を作成するという課題を提起します。 RGB 立方体の区分的線形関数は色を生成できますが、必ずしも顕著に異なるとは限りません。他の方法には、RGB 立方体を格子に分割し、点をサンプリングすることが含まれます。
ただし、提供されたソリューションは依然として最適化には達していません。
任意 N
- 「カテゴリ画像のカラー表示」は、無料でダウンロード可能なソリューションを提供します。
- 「地図のカラーリングをカスタマイズするための WEB サービス」は、近日中に利用可能になる Web サービス ソリューションを提供します。
- "ハイコントラスト カラー セットの選択アルゴリズム」は、無料の C 実装を提供します。
- 「ハイ コントラスト カラー セット」は、この問題を解決するための最初のアルゴリズムを示します。
N は有限で比較的小さい
N が小さい場合、事前定義された色のリストの使用を検討してください:
- ボイントンのほとんど混同されない 11 色のリスト
- Kelly の 22 色の最大コントラスト
- MIT の学生が作成したリスト
上記の記事には、カラー システム間の変換に便利なツールも提供されています。
- 色彩理論: マンセル 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 の最適化
16 進数およびチャネルごとの 8 ビットの定義済みカラー:
- Kelly の色の Python 実装
- Kelly の色の JavaFX 実装
追加のヒント:
- 色の並べ替えを忘れないでください最大限の区別を確保するために、色相に基づいて色を決定します。
- 色覚に欠陥がある人は、ボイントンとケリーのリストにある色を避けてください。
以上がN 個の視覚的に区別できる色を自動的に生成するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。