Мне нужна функция, которая будет генерировать три числа, поэтому я могу использовать их как шаблон RGB для моего SVG.
Хотя это просто, мне также нужно убедиться, что я не использую тот же цвет дважды. Как именно я это делаю? Сгенерируйте одно число за раз с простым rand
(время посева активно), а затем что? Я не хочу исключать число, но, может быть, всю картину?
Я как бы потерялся здесь.генерировать случайный цвет RGB с использованием функции rand()
Чтобы быть точным, при первом вызове этой функции я получу, например, 218 199 154, а вторым я получу 47 212 236, которые определенно являются двумя разными цветами. Какие-либо предложения?
Также я думаю, что struct
с int r, int g, int b
подходит для этого?
Редактировать: Цвета должны отличаться от человеческого глаза. Извините, что не упоминал об этом раньше.
Чтобы гарантировать, что один и тот же цвет никогда не используется дважды, просто храните цвета, созданные до сих пор в связанном списке (или хеш-карте, если у вас есть доступ к одному). Продолжайте применять rand, пока ваш номер не находится в этом наборе. – Lalaland
Другое соображение: это «тот же цвет» для компьютера или для человека? Если во-вторых, то одной единицы разницы в одном из номеров RGB, вероятно, недостаточно, чтобы сделать ее достаточно разной для глаз. – Arkadiy
@ Аркадий: да отличается от человеческого глаза. Не только другой оттенок того же цвета, который не будет узнаваем. – Markus