Я пытаюсь генерировать цвета на лету для элемента управления диаграммы. Я хочу, чтобы цвета были визуально отличительными. Я не просто хочу, чтобы цвета отличались от смежных, но все цвета, сгенерированные до сих пор.
Я также не хочу иметь известный размер коллекции цветов. Некоторые алгоритмы, которые я видел для этого, требуют, чтобы количество вещей, которые нужно раскрасить, было известно. Я хочу реализовать GetNextColor () для моего генератора цветов, поэтому я не буду знать во время выбора количества цветов, которое у меня будет в конечном итоге, и выбора числа на первый взгляд кажется неправильным.
Я не просто пытаюсь нарисовать кучу разных цветов, я заинтересован в этой проблеме и хочу получить обратную связь.
Вот где я нахожусь:
- Использование цветового пространства HSV.
- Оттенок - это значение от [0-360], где 0
и 360 одинаковы (красноватые).
- Оттенок начинается с 0, я объявления 27 (так что
когда он вращается вокруг него не приземляется на тот же цвет, он начал
) возьмите MOD 360.
- Для S и V (оба между 0 и 1) я начинаю с небольшого числа, например
+0,25
- пробег около 20 оттенков
- Тогда возьмите большое число, например .85
- пробег через 20 оттенков
- Тогда начните делить пополам, чтобы получить самые отдаленные
значения, которые еще не использовались.
Это не очень эффективный метод, он работает хорошо, но это может быть очень
более научный. Это началось с много мыслей, а затем
превратился в этот беспорядок.
Есть идеи, как сделать это элегантно?
(Это не должно иметь значения, но я использую C #, и я отправлю код, когда вернусь к своему компьютеру, на котором все это включено.)