HTML テーブルで構成されるヒート マップに取り組んでいます。このテーブルにはn 個のセルが含まれ、最低値と最高値があります (最高値は常に最低値よりも高くなります)。各セルにはセル値があります。これらの値はすべて int です。
最小値のセルは水色で、最大値のセルが濃い赤になるようにスケーリングされます。理想的な範囲については、以下の勾配を参照してください。
個々のセルの 16 進数の色の値を計算するために、テーブルの最小値と最大値、およびセルの合計値を調べて、RGB 16 進数を返すメソッドにそれらを渡し、HTML の背景色スタイルで使用できるようにします。
これまでの方法は次のとおりです。
public string ConvertTotalToRgb(int low, int high, int cell)
{
int range = high - low;
int main = 255 * cell/ range;
string hexR = main.ToString("X2");
int flip = 255 * (1 - (cell/ range));
string hexB = flip.ToString("X2");
return hexR + "00" + hexB;
}
最小値が 0 で最大値が 235 の場合、このメソッドは次の表を返します (セル値はセル内にあります)。
例:最小値が 20、最大値が 400、セルが 60 の場合、グラデーションに沿って約 15.8% の色の RGB 16 進数を返すメソッドが必要です。
400 - 20 = 380
380 / 60 = 6.33
100 / 6.33 = 15.8
この式が正確でないことは承知していますが、それが部分的に私がここで助けを求めている理由です.
私はここまでやってきましたが、どうすればよいのか本当にわかりません。どんな助けでも大歓迎です!