嘿哦,所以,
我有一个温度小部件要在我正在进行的项目上实现。
没有什么特别困难的,我有一个免费的 API 来检索我需要的数据等。
但是,和我一起工作的可爱设计师有一个颜色特征,我对此一无所知......
他会根据当前的天气温度来定义背景颜色。
我的意思是如果温度很冷,比如-20,背景颜色应该是蓝色/紫色/任何冷色;当天气暖和时,比如 25 度,它应该有一个热的背景颜色,比如橙色/红色。
我认为我可以轻松地使用一系列“温度步骤”,但我更喜欢使用可以根据温度定义颜色的函数。我知道这很奇怪,我不知道是否有一种算法可以通过温度颜色来定义颜色......
这篇文章很有帮助http://en.wikipedia.org/wiki/Color_Temperature http://en.wikipedia.org/wiki/Color_temperature但相当复杂,如果有人有任何想法,即使是开始,我也很感兴趣!
我看到了这个线程:用 C# 将温度显示为颜色? https://stackoverflow.com/questions/7229895/display-temperature-as-a-color-with-c
但我没有使用 C#,也不想使用,所以如果 JavaScript 有解决方案,那就完美了。如果有服务器端需求,我最终可以使用 PHP 或 NodeJS。
编辑 - 答案:
最后,由于图形需要,我没有选择使用真实颜色渐变数组。
但我仍然必须根据温度混合最接近步骤的颜色!
我编写了一个小型 JS 库来做到这一点,您很快就能在 GitHub 上找到它,我将在此处发布链接。
你可以在这里找到它:
项目介绍网站 http://color-mix.it/
或者github项目 https://github.com/Flo-Schield-Bobby/colormix
您的颜色范围看起来与“HSL 颜色空间”中的“仅色调”扫描相同,从 -30°C 时的 270°(紫罗兰色)到 +30°C 时的 30°(橙色)
var hue = 30 + 240 * (30 - t) / 60;
If t
超出范围,要么在调用上面的表达式之前钳制它,要么钳制h
之后调整到所需的色调范围。
在支持的浏览器上,您可以使用hsl(h, s, l)
颜色字符串,或使用常用的“HSL 到 RGB” http://en.wikipedia.org/wiki/HSL_and_HSV函数将 HSL 颜色转换为 RGB。
See http://jsfiddle.net/V5HyL/ http://jsfiddle.net/V5HyL/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)