我想随机化一种颜色,但条件有点模糊:颜色不能是灰色(因此,接近黑/白)。
这样做的方法是什么?
我的想法:
选择一个基本的颜色调色板然后随机选择一个,并且"播放"用它的RGB参数。
答案 0 :(得分:2)
颜色可以用红色,绿色和蓝色混合的方式表示。一个可以更好地工作的模型是一个名为HSV的方法(有一个类似的模型称为HSL),意思是色调,饱和度和值。色调是颜色的频率(色轮上的旋转位置),而饱和度和值控制颜色的显示效果以及颜色的暗/亮程度。确定S和V的范围,然后选择一个随机的Hue,你应该是好的。
答案 1 :(得分:1)
的伪代码:
在0到255范围内生成value1。
生成范围0到(value1 - 100)和(value1 + 100)到255的值2
在范围0到min(value1,value2)中生成value3 - 100和min(value1,value2)+ 100到255.
随机将value1,value2和value3分配给R G和B.
答案 2 :(得分:1)
为红色(r),绿色(g)和蓝色(b)生成随机值。然后计算
(r - g) * (r - g) + (r - b) * (r - b) + (g - b) * (g - b)
此数量将为您提供颜色距离灰色的距离的度量。零意味着它是灰色或黑色或白色。大量意味着它已经饱和。
因此,如果此数字小于某个阈值(可能是5000左右),则重新生成数字。您可能需要玩一点才能找到满足您需求的最佳阈值。
构造它的最简单方法可能是使用do-while循环。