Выбор эстетически приятных случайных цветов - PullRequest
6 голосов
/ 02 марта 2011

У меня есть набор категорий (количество которых меняется в зависимости от конкретного состояния), каждой из которых мне нужно назначить уникальный цвет.

Я пробовал использовать случайные цвета, но они выглядят плохо, поэтому мне нужен метод генерации случайных цветов, которые подходят друг другу.

Ответы [ 6 ]

8 голосов
/ 02 марта 2011

Вы должны взглянуть на теорию цвета и дополнительные цвета;это даст вам цвета, которые хорошо работают вместе.

Посмотрите на Color Scheme Designer .Используйте режим тетрады, чтобы увидеть, как вы можете комбинировать 4 цвета и разные оттенки, чтобы получить ряд отдельных областей на изображении.

Вот диаграмма цветовых оттенков и некоторые примеры, который может вам помочь.

3 голосов
/ 02 марта 2011

Чтобы расширить предыдущий ответ, вы можете использовать сервис, такой как http://www.colr.org/ (который создает цветовые схемы из изображений), для создания цветовых схем, которые гарантированно "не странные", а затем выбрать случайный цвет из эта схема.

3 голосов
/ 02 марта 2011

Почему бы не создать список цветов, которые, по вашему мнению, будут подходить друг другу (например, базовый красный, зеленый, синий, желтый, оранжевый и т. Д.), И просто выбрать случайные цвета из списка, будучи уверенными, что независимо от того, чтоцвета подобраны, все они будут хорошо выглядеть вместе?

2 голосов
/ 02 марта 2011

Самая простая вещь на земле:

Используйте цветовую модель HSV (http://en.wikipedia.org/wiki/HSL_and_HSV)) и просто измените один из параметров (Hue), чтобы получить приятные цветовые переходы.

1 голос
/ 02 марта 2011

Уловка, которую я использую в подобных ситуациях, состоит в том, чтобы сгенерировать три случайных значения интенсивности, а затем использовать эти три значения в шести возможных комбинациях RGB для создания палитры цветов, имеющих постоянную интенсивность и равномерный контраст.

Пример использования трех значений интенсивности 33, 88 и aa.

<div style='background-color: #3388aa;'>Color 1</div>
<div style='background-color: #33aa88;'>Color 2</div>
<div style='background-color: #aa8833;'>Color 3</div>
<div style='background-color: #aa3388;'>Color 4</div>
<div style='background-color: #8833aa;'>Color 5</div>
<div style='background-color: #88aa33;'>Color 6</div>
1 голос
/ 02 марта 2011

Вам придется выяснить алгоритм, используя палитру цветов из Интернета, и посмотреть, что произойдет, если вы измените RGB-значения с фиксированной величиной.Если вы можете найти это (например: добавить 10 к значению R, а если достигнут конец, добавить 10 к значению G и сбросить значение R), вы можете динамически составить список для себя.

Второй вариант: когда вы знаете, что у вас есть максимальное количество категорий, вы можете создать список и использовать его.

...