2
我想根據原始顏色和正態分佈生成一個隨機顏色,這樣我就可以創建一個隨機紋理來告訴腳本「好的,這是您應該使用的一般顏色使用,但如果你現在每時每刻都大不相同,那很好「。正態分佈的隨機顏色偏差
我正在使用Box-Muller變換在JavaScript中編寫代碼。但是如果我在每個R,G和B值上獨立使用正態分佈,我會得到不希望的尖峯。例如,如果我的基本顏色是淺灰色,則會獲得非常紅,非常綠或非常藍的像素。這是我的腳本到目前爲止(「0,255」是最小值和最大值):
function randomHex(hex, deviation){
R = HexToR(hex);
G = HexToG(hex);
B = HexToB(hex);
R = randomNormal(R, deviation, 0, 255);
G = randomNormal(G, deviation, 0, 255);
B = randomNormal(B, deviation, 0, 255);
return RGBtoHex(R,G,B);
}
我想我正在尋找的是在RGB顏色的三維空間以某種方式定義一個點,然後選擇(均勻分佈)的隨機點在以球體爲中心的球體上,球體的半徑是以正態分佈隨機生成的。
無論如何,這就是理論。我只是不知道如何在JavaScript中完成這項工作。
我會很感激任何指針!
有趣。我應該研究一下。我將它用於Photoshop腳本,並且可以在那裏訪問HSB顏色模型(這與HSV應該是一樣的)。但是,我會如何隨機化?每個值都會收到自己的正態分佈隨機數?這會在色調或飽和度或亮度上激增(並且很少在3個以上的其中一箇中)。得試試看。謝謝! (還沒有足夠的聲望來升級,對不起 – Squis 2011-03-22 03:04:02
我認爲這是你想玩的東西,以獲得你以後的結果。我的猜測是,你可能想要一個正常的色調分佈,但也許是飽和度和數值/亮度的不同分佈,它可以歸結爲調整每個標準偏差(我懷疑你會希望它對於所有三個值都是相同的) – afranz409 2011-03-22 12:55:48