我想根据给定的数字计算颜色值.
0 -> pure red
100 -> pure green
example: 75 -> color, which is 75% from red to green.
Run Code Online (Sandbox Code Playgroud)
我需要这个到期计数器,它显示适当的颜色,因为天数倒计时.
我有一个值列表,每个值都有纬度和经度.我正在寻找创建一个半透明的热图图像以覆盖在谷歌地图上.我知道已经有服务器端和基于闪存的解决方案,但我想使用canvas标签在javascript中构建它.
但是,我似乎无法找到用于将坐标和值转换为热图的算法的简明描述.任何人都可以提供或链接到一个?
谢谢.
我似乎无法弄清楚这一点。我有一组缩放的值 (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;
}
Run Code Online (Sandbox Code Playgroud)
我认为将它们从 0 缩放到 1 将使我正在努力的下一部分变得更容易。
这是我想出的一个非常糟糕的尝试,但失败得很厉害。
function make_color($value)
{
$red = $value > 0.5
? (1 - 2 * ($value - 0.5) / 1)
: 1;
$green = $value …Run Code Online (Sandbox Code Playgroud) 我需要逐渐插入或改变一系列颜色,因此它从colorA到colorB再到colorC到colorD,然后再返回到colorA,这需要基于经过的时间(以毫秒为单位),任何帮助都将非常受欢迎(算法,伪代码会很棒).
请注意,我正在使用RGB,它可能是0-255或0.0-1.0范围.
这就是我到目前为止,我需要更改每个"timePeriod"的颜色,我们计算经过的时间百分比并更改颜色,这段代码的问题是当它从A到A时有一个跳转B到B到C等等
int millisNow = ofGetElapsedTimeMillis();
int millisSinceLastCheck = millisNow - lastTimeCheck;
if ( millisSinceLastCheck > timePeriod ) {
lastTimeCheck = millisNow;
millisSinceLastCheck = 0;
colorsIndex++;
if ( colorsIndex == colors.size()-1 ) colorsIndex = 0;
cout << "color indes: " << colorsIndex << endl;
cout << "color indes: " << colorsIndex + 1 << endl;
}
timeFraction = (float)(millisSinceLastCheck) / (float)(timePeriod);
float p = timeFraction;
colorT.r = colors[colorsIndex].r * p + ( colors[colorsIndex+1].r * ( 1.0 - p ) …Run Code Online (Sandbox Code Playgroud)