PHP红色到绿色RGB颜色热图

马修·布朗

我似乎无法弄清楚这一点。我有一组缩放的值(0 ... 1),需要将它们与颜色关联。最高(1)为红色,最低(0)为绿色。

我似乎找不到如何获得介于0和1之间的值的红色和绿色之间的RGB颜色。

这是我将用于缩放值的缩放函数:

function scale_value($value, $srcmin, $srcmax, $destmin = 0, $destmax = 1)
{
    # How Far In Source Range Are We
    $pos = (($value - $srcmin) / ($srcmax - $srcmin));
    return ($pos * ($destmax - $destmin)) + $destmin;
}

我认为将它们从0缩放到1将使下一个我正在苦苦挣扎的部分容易得多。

这是我想出的一个非常糟糕的尝试,失败非常严重。

function make_color($value)
{
    $red = $value > 0.5
       ? (1 - 2 * ($value - 0.5) / 1)
       : 1;
    $green = $value > 0.5
        ? 1
        : 2 * ($value / 1);
    $blue = 0;
    return "rgb($red,$green,$blue)";
}

有没有人有使用PHP确定用于1到0之间的值的颜色的经验?

马修·布朗

找到了解决方案,将此处发布的JS实现的解决方案转换为PHP,并将Red转换为Green极性,使Red高,Green低。

看起来像这样:

/**
 * @param $value
 * @param integer|float $min
 * @param integer|float $max
 * @return string
 */
function make_color($value, $min = 0, $max = .5)
{
    $ratio = $value;
    if ($min > 0 || $max < 1) {
        if ($value < $min) {
            $ratio = 1;
        } else if ($value > $max) {
            $ratio = 0;
        } else {
            $range = $min - $max;
            $ratio = ($value - $max) / $range;
        }
    }

    $hue = ($ratio * 1.2) / 3.60;
    $rgb = hsl_to_rgb($hue, 1, .5);

    $r = round($rgb['r'], 0);
    $g = round($rgb['g'], 0);
    $b = round($rgb['b'], 0);

    return "rgb($r,$g,$b)";
}

这也依赖于我在本文中找到的HSL到RGB转换器最终给我一个不错的结果:

使用PHP的红色到绿色热图

谢谢您的帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在python中创建从绿色到红色的热图?

来自分类Dev

PHP-从绿色生成颜色->黑色->红色

来自分类Dev

红色到绿色渐变的算法

来自分类Dev

opengl es yuv到RGB转换仅显示绿色和粉红色

来自分类Dev

确定对于给定的RGB值组合,哪种颜色(红色,蓝色,绿色或其他颜色)可见?

来自分类Dev

如何使用css属性线性渐变逐渐将颜色从红色变为黄色到绿色?

来自分类Dev

如何从Google热图删除绿色边框?

来自分类Dev

Seaborn热图颜色图

来自分类Dev

从绿色到红色,具体取决于值

来自分类Dev

删除holoviews热图颜色

来自分类Dev

将许多div的颜色从绿色设置为红色

来自分类Dev

Python热图图颜色条

来自分类Dev

在Tkinter中绘制一个从红色到绿色的比例

来自分类Dev

两种颜色订购的热图

来自分类Dev

Matlab调整热图轴和颜色

来自分类Dev

如何分配热图颜色范围

来自分类Dev

Seaborn热图按行排列颜色

来自分类Dev

为Seaborn热图分配特定颜色

来自分类Dev

绘制Python热图颜色条方向

来自分类Dev

频率值作为颜色变量的热图

来自分类Dev

翻转Seaborn热图的颜色条

来自分类Dev

Matlab调整热图轴和颜色

来自分类Dev

单张热图未产生渐变颜色

来自分类Dev

R中的传单上的热图颜色

来自分类Dev

如何询问用户3个RGB值(红色,绿色,蓝色)并使用输入掩码验证输入的值?

来自分类Dev

Python:制作从红色到蓝色的颜色条

来自分类Dev

在Matlab / Octave中创建颜色图/热图

来自分类Dev

每行Altair热图独立的颜色图计算

来自分类Dev

使vim以类似于git diff命令的颜色显示git diff(红色删除,绿色添加)