我知道这与 previous question 非常相似我已经发布了,我无法弄清楚如何修改它以适应这个问题。
我有一个介于 0 和 1 之间的值数组。我想将这些值转换为范围从红色 (0) 到蓝色 (1) 的 RGB 颜色数组。上一个问题中建议的解决方案首先将值转换为 HSV 元组,然后使用 colosys.hsv_to_rgb()
转换为 RGB 值。
如果我想生成介于红色和绿色之间的颜色,这很好。我可以线性插入色调值。然而,当极端颜色是红色和蓝色时,中间值呈现绿色,因为绿色色调介于红色和蓝色之间。有什么办法可以避免这种情况,只在红色和蓝色附近获得颜色吗?
我知道我可以直接对 RGB 值进行线性插值,但这并不能提供良好的色谱。所以请告诉我一个使用 HSV 空间的解决方案。
最佳答案
将您的 0-1 输入缩放为 0-(-120) 输出,将模数乘以 360,并将其用作您的色调(或 0-(-0.3333...) 和 1.0,视情况而定)。
关于Python:将0到1之间的值转换为红色到蓝色的颜色范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12432383/