1

我想随机化一些颜色,所有颜色都具有相同的亮度(但不同的purdy颜色)。现在有一个很好的色彩空间LAB可以让你做到这一点,但是当转换回 RGB 时它会变得有点棘手,因为并非你可以在LAB空间中选择的所有颜色都可以在 normal 中表示RGB

我决定采用以下方法(糟糕的伪代码,不要介意范围和确切值):

L = some fixed value
while r, g or b not in range 0.0 to 1.0:
    a = random value
    b = random value
    r, g, b = LABtoRGB(L, a, b)

现在这往往只需要 1 或 2 次迭代L=50(因为RGB可以代表该亮度的大部分颜色),但我不喜欢这种解决方案。

肯定有更好的方法吗?干杯!

4

1 回答 1

0

最简单但不是最准确的方法是随机选择R, G & B这样(可能通过从平均值为的正态分布和平均值为( is now )的分布中sqrt(R^2+G^2+B^2) == L绘制RL*sqrt(3)/3G(L^2-R^2) / 2Bsqrt(L^2 - R^2 - G^2)

于 2014-01-03T19:27:25.447 回答