我正在制作一个显示值从1到50的应用程序,并且我想像彩虹一样更改颜色,所以如果值是1,则颜色=蓝色,如果值= 50,则颜色是红色。
我已经尝试过了,只有这样不会改变彩虹的颜色:
for i in range(value):
x += 40
color = (x,255,255)
答案 0 :(得分:2)
这更多是关于颜色如何工作的问题。您会注意到它是一个三元组:
color = (red, green, blue)
计算机颜色通常在additive color mixing下起作用。如果根本没有颜色,则您会变黑。如果您具有红色,绿色和蓝色的最大值,则会得到白色。如果您想从红色变成蓝色,然后变成紫色,则可以执行以下操作:
color = (255-x, 0, x)
如果您想再次跨越彩虹从红色过渡到黄色,橙色,绿色,蓝色,紫色和红色,您想要的不是RGB颜色空间,而是HSV(色调) ,饱和度,值)。我假设您使用的用于输出颜色的任何颜色都必须为RGB,但即使如此,Python provides a module for converting between the two:
import colorsys
...
color = colorsys.hsv_to_rgb((x / 255), 1, 1)
请注意,colorsys
中的函数仅采用0到1之间的值,因此,如果要以255为单位,则必须在获得矢量后将其乘以255:
color = (255 * c for c in colorsys.hsv_to_rgb(x/255, 1, 1))