【发布时间】:2018-01-13 08:56:59
【问题描述】:
我希望能够生成接近一种 RGB 颜色的多种颜色,如下图所示。
这是我使用 Python 所做的:
def similarColors(rgb, loop=6):
difference = 30
colors = []
for i in range(loop):
red = rgb[0]
red_highest = red + difference
red_lowest = red - difference
red = randint(red_lowest, red_highest)
green = rgb[1]
green_highest = green + difference
green_lowest = green - difference
green = randint(green_lowest, green_highest)
blue = rgb[2]
blue_highest = blue + difference
blue_lowest = blue - difference
blue = randint(blue_lowest, blue_highest)
colors.append([red, green, blue])
return colors
palette = similarColors([244, 83, 28])
问题:我觉得我用这种方法过于复杂了有没有办法让上面的代码更简洁更短?
我想避免对每种颜色(红色、蓝色、绿色)分别进行相同的处理,我也不确定这种方法是否真的适合我想要实现的目标。
【问题讨论】:
-
我在我的答案中添加了一个新版本,它(部分)弥补了人类视觉系统对红色、绿色和蓝色的敏感性不同这一事实。