修改颜色以使其与背景不太相似的算法
我正在创建一个演示示例,其中有20个球互相弹跳,背景填充有纯色。每个球的颜色是randint(0, 255)针对每个R,G,B元组分量随机选择的。 问题是某些球最终的颜色与背景非常相似,因此很难看到它们。我想避免这种情况,如果选择的颜色太相似(在给定的阈值范围内),则滚动另一种颜色,或者将其移离背景颜色。 如何计算相似度指标用作阈值?或者,如何变换颜色使其变淡(例如,偏蓝)? 明显的免责声明:我对色彩理论一无所知,所以我不知道上述概念是否存在! 我正在用python进行编码,但是我正在寻找概念和策略,因此伪代码很好(或者只是理论上)。 编辑: 要澄清几点: 每个球都有自己的随机颜色。我希望它们尽可能地保持随机性,并尽可能地探索色彩空间(无论是RGB还是HSV,都pygame接受两种格式来定义色彩) 我只是想避免每种颜色与背景“太接近”。问题不仅仅在于色调:我完全可以在深蓝色背景下使用浅蓝色球(或者在“白色”蓝色下使用“全蓝色”,等等) 现在,我不在乎一个球的颜色是否与另一个球相似(甚至相同)。避免这种情况是有好处的,但这是一个小问题。 背景色是恒定的单一RGB颜色。目前,我使用的是“基本”蓝色(0, 0, 255),但我对此还不太满意。因此,请考虑背景为任意颜色(具有任意色调,亮度,饱和度等)。 编辑2: TL,DR版本:只是提供一种创建X种随机颜色的方法,这样就不会在任意(但单一和恒定)颜色的背景下“淡入淡出”