Задать вопрос
@Urukhayy

Где или как можно такое организовать (работа с цветами)?

Есть массив цветов в шестнадцатеричной системе счисления:
0x000000FF, 0xF5F5F5FF, 0x2A77A1FF, 0x840410FF, 0x263739FF, 0x86446EFF, 0xD78E10FF, 0x4C75B7FF, 0xBDBEC6FF, 0x5E7072FF,
0x46597AFF, 0x656A79FF, 0x5D7E8DFF, 0x58595AFF, 0xD6DAD6FF, 0x9CA1A3FF, 0x335F3FFF, 0x730E1AFF, 0x7B0A2AFF, 0x9F9D94FF,
0x3B4E78FF, 0x732E3EFF, 0x691E3BFF, 0x96918CFF, 0x515459FF, 0x3F3E45FF, 0xA5A9A7FF, 0x635C5AFF, 0x3D4A68FF, 0x979592FF,
0x421F21FF, 0x5F272BFF, 0x8494ABFF, 0x767B7CFF, 0x646464FF, 0x5A5752FF, 0x252527FF, 0x2D3A35FF, 0x93A396FF, 0x6D7A88FF


Нужно чтобы программа рассортировала эти цвета в порядке, заданном в цветовом спектре (радуга). Может есть готовые сервисы?
Либо, чтобы сортировались по иному спектру, но с плавным переходом от цвета к цвету.
  • Вопрос задан
  • 344 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@AlexSku
не буду отвечать из-за модератора
Сделать переход RGB -> HSV и отсортировать по H (hue - цветовой тон).
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
dom1n1k
@dom1n1k
Задача эта не имеет однозначного решения, потому что цветовых координат три, а массив одномерный.
Вот статья как раз об этом:
https://habrahabr.ru/company/yandex/blog/263375/
Ответ написан
Комментировать
riot26
@riot26
<:З )~~
Ответ написан
Комментировать
@Free_ze
Пишу комментарии в комментарии, а не в ответы
  1. Взять цвета радуги (как известно - К-О-Ж-З-Г-С-Ф)
  2. по ним рассортировать точки исходного массива (найти декартово расстояние между точкой и чистым базовым цветом), получим достаточно простую двумерную палитру: базовый цвет и расстояние до него,
  3. свести ее к одномерному массиву: выводить группы в естественном порядке, а цвета в каждой группе - по возрастанию расстояния.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы