我敢肯定这一定是相当简单的,但这是一个很难回答的问题。我什至不知道要为Google做什么。

我没有在寻找任何复杂的解决方案。基本上,我在 Canvas 上绘制线条,并且我希望根据线条的长度使用不同的颜色。通常,我只是按比例缩放红色通道(#ff0000 *(行长)/(最大行长)),但是这种解决方案并不理想。我只是在寻找一个方程,它将给我一个彩虹渐变上某个位置的#rrggbb值,如果这有意义的话。

谢谢任何可以帮助您的人!非常感谢。

最佳答案

由于您使用的是 Canvas ,因此您可能可以使用HSL色彩空间(如果我输入错了,请纠正我)。它将使代码更加简单:

function rainbow(n) {
    n = n * 240 / 255;
    return 'hsl(' + n + ',100%,50%)';
}

如果您可以选择0到240之间的范围,那么您甚至可以删除此函数的第一行。参见DEMO

07-26 07:29