algorithm - 基于随机数的颜色生成

标签 algorithm colors generator

我想创建一个基于随机数的颜色生成器,它们可能略有不同,但我需要颜色能够很容易地相互识别。我正在考虑以 rgb 格式生成,这可能是最简单的。恐怕简单地乘以给定的论点不会做得很好。你建议使用什么算法?此外,第二个生成的颜色不应与前一个颜色相同,但我不想存储它们 - 也不会乘以(微)时间会很好,因为脚本的部分通常更快。

最佳答案

如果您想要真正随机的颜色,那么连续 10 次生成相同的颜色是可以接受的。要获得被认为是随机的值,您必须去除真正的随机性。

最简单的方法可能是使用颜色列表的循环索引。假设您选择 Web 颜色,这是一个包含 216 种颜色的列表。每次你想要一种新颜色时,在索引中添加一个随机数,根据需要换行。为防止获得相同的颜色,请将随机数限制为小于颜色数。

colorIndex = ( colorIndex + ( random() % 100 ) + 1 ) % 216;

如果您不需要查找表,则生成 HSB 颜色,但将色调限制在不包括先前颜色的圆的一部分。例如,如果前一个色调是 60 度,则选择下一个高于 90 度或低于 30 度的色调。您可能希望将饱和度和亮度限制在 50% 左右。

关于algorithm - 基于随机数的颜色生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2952760/

相关文章:

javascript - 将 ES6 生成器与 XMLHttpRequest 结合使用

css - 在 Full Calendar 2.3.2 中更改标题标题颜色

ios - 字符串中的特定颜色

javascript - 如何将此异步回调转换为生成器?

javascript - 与 bluebird 和 co 一起快速生成生成器功能

java - 设置具有不同背景颜色的区分工具提示 (Java)

java - 我们如何使用单例模式存储 url 和时间戳?

algorithm - 如何打印多个字符的所有可能组合?

database - 文件夹搜索算法

java - 在线性 (O(N)) 时间内对数组进行排序