c - 使用 rand() 函数生成随机 RGB 颜色

标签 c random colors svg srand

我需要一个函数来生成三个数字,这样我就可以将它们用作我的 SVG 的 RGB 模式。
虽然这很简单,但我还需要确保我没有使用相同的颜色两次。 我到底该怎么做?使用简单的 rand(种子时间激活)一次生成一个数字,然后呢?我不想排除一个数字,但也许是整个模式?
我有点迷路了。

准确地说,通过第一次调用此函数,我将得到例如 218 199 154,第二次我将得到 47 212 236,这肯定是两种不同的颜色。有什么建议么?

此外,我认为带有 int r, int g, int bstruct 适合这个吗?

编辑:人眼应该看到不同的颜色。很抱歉没有早点提到这一点。

最佳答案

您可以使用集合来存储生成的颜色。 首先实例化一个新集合。 然后,每次生成颜色时,查看该值是否存在于您的集合中。 如果记录存在,则跳过它并重试新颜色。如果没有,你可以使用它,但不要忘记将它缓存在 Set after 中。 如果您需要生成大量颜色,这可能会变得不高效。

关于c - 使用 rand() 函数生成随机 RGB 颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10882916/

相关文章:

c - 什么时候在 C 语言中使用 ntohs 和 ntohl?

检查是否有东西被 malloced

python - 有没有一种方法可以将数组的内容配对,然后可以自行删除? ( secret 圣诞老人计划)

Haskell如何为模拟生成无限数量的无限随机数列表?

java - Jlabel颜色变化

java - 从 JComboBox 选择颜色

c - malloc分配的内存保护标志是什么?

random - 从 32 位有限集生成伪随机非重复整数

graphics - 如何以整数形式反转RGB颜色?

c - 没有大括号的嵌套 IF-Else 的工作