gpt4 book ai didi

php - 如何将任意数字转换为 rgb 颜色?

转载 作者:可可西里 更新时间:2023-10-31 22:57:40 37 4
gpt4 key购买 nike

我有一个大约有一百个用户的应用程序。我们有一个日历 View ,其中每个用户都可以有多个条目。同一个用户的每个条目应该有相同的颜色,但不同的用户应该有不同的颜色。目前我们已经在一个数组中手动​​定义了大约 25 种颜色,用户获得的颜色由

$color = $colors[$userid % count($colors)];

我们不想为每个新用户手动添加颜色,为每个用户选择颜色似乎也有点乏味。

是否有一个简单的函数可以将数字(用户 ID)映射到颜色(最好是 RGB)?下一个问题是;有没有办法将函数限制为特定类型的颜色(即,只有白色字母可读的颜色)?

最佳答案

我本身没有解决方案,但有一个建议。

首先,由于您希望每个用户的颜色都是唯一且随机的,因此您可以开始使用某种数字哈希函数。这会给你一个很可能是唯一的随机数。如果您的哈希函数不错,并且您的用户有数百人,那应该就足够了。

现在您需要将其转化为颜色,最好是在光谱的暗端。如果你使用 RGB,你需要三个数字。为了让它们保持黑暗,假设您将总值或 R、G 和 B 保持在 200 以下。当然,这是一个猜测,但它应该非常暗。在 1 和 3 之间选择一个随机数 [索引] - 这就是您要开始使用的 R、G 或 B。获取一个 0 到 200 之间的数字,并为 color[index1] 设置记录。现在选择其余索引之一,1-3。为此,选择一个介于 0 和您已有的颜色 [index1] 之间的数字。将剩余数量设置为 200-color[index1]-color[index2]。现在你有一个随机的 RGB 值,应该与白色形成对比。

我意识到我从来没有从前面的哈希函数中得到太多用处——也许放弃它,只使用用户 ID 作为随机(种子)。

关于php - 如何将任意数字转换为 rgb 颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10229492/

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