私は現在、JavaScriptでランダムな16進数の色を生成するために以下を使用しています:
function getColor(){
return '#'+(0x1000000+(Math.random())*0xffffff).toString(16).substr(1,6);
}
これらの色のいずれかが生成されるたびに、配列にプッシュされます。
var colors = new Array();
getColor 関数が常に最初に「全体」の色から選択するようにします。「赤」(#FF0000) や「黄」(#FFFF00) などで、これらすべての「全体」の色が色の配列と照合して既に取得されていることを確認した後でのみ、次のようなよりあいまいな/混合色を提供する必要があります。 'GreenYellow' (#ADFF2F) など
したがって、本質的に、関数は最終的に色の配列に存在するすべての 16 進数ベースの色を設定する必要があります。最も強い色 (「全体」の色と呼んでいるもの) から始めて、より弱い「混合された」色に移動し、最後に黒で終了します。それはすべての中で最も望ましくないと見なされるためです。
残念ながら、私が望む正確な順序で色の完全な配列を提供し、それらを反復する以外にどこから始めるべきか本当にわかりません。
これは、ハンマーを使ってナッツを割るようなものです。他のよりエレガントなソリューションは大歓迎です。
前もって感謝します。
注意:ここで使用した用語が正確ではないことは理解していますが、「全体の」色の意味を理解していただければ幸いです。私はそれを明確にするためのより良い方法を本当に考えることはできません。
編集:これが必要な理由について少し理解するのに役立つかもしれません。色は、ユーザーが自分でグループ化するときに、同じグループで始まるアイテムを視覚的に識別するために使用されます。ほとんどの場合、数グループしかなく、平均して 20 ~ 30 人程度です。したがって、より似ている色に移る前に、はっきりと見えて互いに区別できる強い色を使用するのが理にかなっています。