php – 如何将artbitrary数字转换为rgb颜色?
我有一个大约有一百个用户的应用程序.我们有一个日历视图,其中每个用户可以有多个条目.同一用户的每个条目应具有相同的颜色,但不同的用户应具有不同的颜色.目前我们在一个数组中手动定义了大约25种颜色,用户得到的颜色由下式确定 $color = $colors[$userid % count($colors)]; 我们不想为每个新用户手动添加颜色,为每个用户选择颜色似乎也有点乏味. 是否有一个简单的
我有一个大约有一百个用户的应用程序.我们有一个日历视图,其中每个用户可以有多个条目.同一用户的每个条目应具有相同的颜色,但不同的用户应具有不同的颜色.目前我们在一个数组中手动定义了大约25种颜色,用户得到的颜色由下式确定
$color = $colors[$userid % count($colors)];
我们不想为每个新用户手动添加颜色,为每个用户选择颜色似乎也有点乏味.
是否有一个简单的函数将数字(用户ID)映射到颜色(最好是RGB)?下一个问题是:有没有办法将函数限制为某种类型的颜色(即只有白色字母可读的颜色)?
解决方法
我本身没有解决方案,而是一个建议.
首先,由于您希望每个用户的颜色都是唯一但随机的,您可以开始使用某种数字哈希函数.这会得到一个最有可能是随机数的随机数.如果您的哈希函数是合适的,并且您的用户数百个就足够了.
现在您需要将其转换为颜色,最好是在光谱的暗端.如果使用RGB,则需要三个数字.为了让它们保持黑暗,让我们说你保持总数或者R,G和B低于200.这当然是猜测,但它应该是非常黑暗的.选择1到3之间的随机数[index] – 这是你要开始的R,G或B.获取0到200之间的数字,并将其记录为颜色[index1].现在选择剩下的一个索引,1-3.为此,选择一个介于0和颜色[index1]之间的数字.将剩余数字设置为200色[index1] -color [index2].现在你有一个随机的RGB值,应与白色对比.
我意识到我从来没有从前面的哈希函数中得到太多的使用 – 也许放弃它并且只使用userid作为随机(种子).
原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。