我希望能够应用从红色到绿色到蓝色平滑混合的色彩地图。
我很清楚,我需要使用HSL来制作这样的热图,然后将每个HSL值转换为RGB值以实现此结果。但是我不知道如何实施解决方案。
以下是代码的一部分,它采用表格元素并确定要应用于哪种RGB颜色。在这种情况下,它是表格类型的“内聚能量”
var td = document.createElement('td');
cellKey = sprintf('%s,%s', m1, m2);
if (_.has(table['cells'], cellKey)) {
var diff = table['max'] - table['min'];
diff = Math.max(1, diff); // prevent divide by zero when max == min.
var val = table['cells'][cellKey]['value'];
var pct = (val - table['min']) / diff;
var blue = Math.floor(255 * (1 - pct));
var red = Math.floor(255 * pct);
if (table['type'] == "Cohesive Energy") {
var blue = Math.floor(255 * (1 - pct));
var red = Math.floor(255 * pct);
td.style.background = sprintf('rgb(%d,%d,0)', red, blue);
}
这是网站http://muskoka.ices.utexas.edu/~fri/fridb/server.py
以下是一些示例数据:https://docs.google.com/file/d/0B5gGZ4-SD7-ZU0RCWkFwN3JBYWs/edit?usp=sharing