0

我希望能够应用从红色到绿色到蓝色平滑混合的颜色图。

我很清楚,我需要使用 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

4

1 回答 1

1

您可能想看看Chroma.js。它是一个库,可以处理各种范围和颜色空间的色阶生成和颜色转换。

于 2013-08-01T16:45:14.197 回答