我需要一个函数来生成三个数字,这样我就可以将它们用作我的 SVG 的 RGB 模式。
虽然这很简单,但我还需要确保我没有使用相同的颜色两次。
我到底该怎么做?使用简单的 rand
(种子时间激活)一次生成一个数字,然后呢?我不想排除一个数字,但也许是整个模式?
我有点迷路了。
准确地说,通过第一次调用此函数,我将得到例如 218 199 154,第二次我将得到 47 212 236,这肯定是两种不同的颜色。有什么建议么?
此外,我认为带有 int r, int g, int b
的 struct
适合这个吗?
编辑:人眼应该看到不同的颜色。很抱歉没有早点提到这一点。
最佳答案
您可以使用集合来存储生成的颜色。 首先实例化一个新集合。 然后,每次生成颜色时,查看该值是否存在于您的集合中。 如果记录存在,则跳过它并重试新颜色。如果没有,你可以使用它,但不要忘记将它缓存在 Set after 中。 如果您需要生成大量颜色,这可能会变得不高效。
关于c - 使用 rand() 函数生成随机 RGB 颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10882916/