我目前使用以下函數來生成顏色的隨機十六進制表示。如何在沒有兩種顏色幾乎相似的情況下生成一組隨機顏色?
function getRandomColor($max_r = 192, $max_g = 192, $max_b = 192) {
if ($max_r > 192) { $max_r = 192; }
if ($max_g > 192) { $max_g = 192; }
if ($max_b > 192) { $max_b = 192; }
if ($max_r < 0) { $max_r = 0; }
if ($max_g < 0) { $max_g = 0; }
if ($max_b < 0) { $max_b = 0; }
return '#' . dechex(rand(0, 192)) . dechex(rand(0, 192)) . dechex(rand(0, 192));
}
請注意,我設置的最大值是192而不是255,我避免很輕的顏色,我會使用隨機顏色作爲前景一個白色的背景目的的唯一原因。
我的問題是如何在沒有顏色幾乎相同的情況下生成無限數量的顏色集合。例如:#D964D9
& #FF3EFF
?
有一點要記住,同時尋找一個解決方案是塔如果你打算在自己附近展示兩種隨機選擇的顏色,那麼很多顏色根本不屬於你,並且會讓你的眼睛流血。 – 2010-09-03 03:45:37