gpt4 book ai didi

javascript - 具有正态分布的随机颜色偏差

转载 作者:行者123 更新时间:2023-11-30 06:05:11 25 4
gpt4 key购买 nike

我想根据原始颜色和正态分布生成随机颜色,这样我就可以创建一个随机纹理,告诉脚本“好的,这是您应该使用的一般颜色,但如果您不同意偶尔大大,这很好。”​​

我正在用 JavaScript 编写,使用 Box-Muller 转换。但是,如果我对每个 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 中实现它。

如有指点,我将不胜感激!

最佳答案

我会尝试使用 HSV(或者可能是 HSL)而不是 RGB。您将需要一个函数来转换回 RGB(有关示例,请参见 here)。在这种情况下,H 是色调,您的值是颜色圆圈上的某个位置。 S 和 V 分别控制饱和度和明度/亮度。我认为这会给你更多的控制权来获得你想要的发行版。有关维基百科的更多信息 here也是。

关于javascript - 具有正态分布的随机颜色偏差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5378948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com