最小値が緑、最大値が赤になるように、正の整数の範囲(1〜15'000など)を色空間にマップする必要があります。つまり、入力として整数(およびおそらく最小値、最大値)を指定し、出力としてRGB値を受け取ることができるアルゴリズムが必要です。
私は色空間を離散化する可能性を認識していますが、私はそうする必要がない解決策を望んでいます。
これで始められるはずです:
function getColourFromInt(int){
var num = Math.abs(int);
var b2 = Math.floor(num % 16);
var temp = num / 16;
var b1 = Math.floor(temp % 16);
var temp2 = temp / 16;
var g2 = Math.floor(temp2 % 16);
var temp3 = temp2 / 16;
var g1 = Math.floor(temp3 % 16);
var temp4 = temp3 / 16;
var r2 = Math.floor(temp4 % 16);
var temp5 = temp4 / 16;
var r1 = Math.floor(temp5 % 16);
var values = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"]
r1 = values[r1]
r2 = values[r2]
g1 = values[g1]
g2 = values[g2]
b1 = values[b1]
b2 = values[b2]
var rgb = r1 + r2 + g1 + g2 + b1 + b2;
document.getElementById('colour').innerHTML = rgb;
}
getColourFromInt(Math.floor(Math.random() * 16*16*16*16*16*16))