コーヒーを飲みすぎたのかもしれませんし、長時間働きすぎたのかもしれませんが、とにかく、この方法が何をするのか、またはなぜ、どのようにそれを行うのかについて、誰かが私に光を当てることができますか? ? ネクストカラーとは?
public Color nextColor() {
int max = 0, min = 1000000000, cr = 0, cg = 0, cb = 0;
for (int r = 0; r < 256; r += 4) {
for (int g = 0; g < 256; g += 4) {
for (int b = 0; b < 256; b += 4) {
if (r + g + b < 256 || r + g + b > 512) {
continue;
}
min = 1000000000;
for (Color c : colorTable) {
int dred = r - c.getRed();
int dgreen = g - c.getGreen();
int dblue = b - c.getBlue();
int dif = dred * dred + dgreen * dgreen + dblue * dblue;
if (min > dif) {
min = dif;
}
}
if (max < min) {
max = min;
cr = r;
cg = g;
cb = b;
}
}
}
}
return new Color(cr, cg, cb, 0x90);
}
アップデート
皆様、ご回答ありがとうございます。プログラム内のメソッドのコンテキストを見ると、それらの意図が、既存の色のセットから「最も離れた」新しい色を返すことであったことは明らかです。
この質問へのフォローアップを提示してくれたSparrに感謝します.あなたのアドバイスを念頭に置いて上記を間違いなく書き直します.
私はRGBカラースケールに精通していません。上記のメソッドの意図を知ることは、「無料?」を検索することです。色を既存の色のセットに置き換えた場合、1で提供された解決策は実際に、色をどのように知覚するかという意味で補完的になりますか? セットを補完する色を選択する簡単な方法はありますか、それとも RGB コンポーネントの数値解析によって実際に適切な色が得られるのでしょうか?