元の色と正規分布に基づいてランダムな色を生成したいので、スクリプトに「これは使用する必要のある一般的な色ですが、今では大きく異なる場合は、ランダムなテクスチャを作成できます。そして、それは大丈夫です」。
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カラーの3D空間でポイントを定義し、球の中心が定義されたポイントであり、半径が正規分布でランダムに生成される球上の(均一に分散された)ランダムポイントを選択することです。
とにかく、それは理論です。JavaScriptでそれを機能させる方法がわかりません。
どんなポインタにも感謝します!