int 変数に基づいて一意の色を作成する関数を作成したいと思います。問題は、これらの変数の範囲 (1 から 10 000 まで) です。
だから私は、それぞれが独自のIDを持つ10 000フィールドの配列を持っています。そして今、その ID に基づいて各フィールドの色を設定する必要があります。
void setColor(int ID); // set R G B
助言がありますか?
10,000 の可能な入力オプションがあるのに対し、256 x 256 x 256 = 1600 万の出力オプションがあります。RGB 値を均等に変化させたいと仮定すると、最大で R、G、B に 21 の diff 値を使用できます。これにより、21.5^3 ~ 10000 が得られます。
したがって、目的を達成するには、256/21 ~ 12 のステップを踏む必要があります。
したがって、基本的に私のポイントは次のとおりです。
int RGB value
1 0,0,0
2 0,0,12
3 0,0,24
.
..
22 0,0,253
23 0,12,0
.
.
.
10000 255,255,255
最も簡単な解決策は、ID を RGB 値に直接変換することです。ただし、視覚的に特徴的な色の範囲にはなりません。