Я хотел бы отсортировать одномерный список цветов, чтобы цвета, которые типичный человек воспринимал как "друг друга", находятся рядом друг с другом.
Очевидно, что это трудная или, возможно, невозможная проблема, чтобы получить "отлично", поскольку цвета обычно описываются с тремя измерениями, но это не означает, что нет некоторых методов сортировки, которые выглядят явно более естественными, чем другие.
Например, сортировка по RGB работает не очень хорошо, поскольку она будет сортироваться в следующем порядке, например:
(1) R = 254 G = 0 B = 0 (2) R = 254 G = 255 B = 0 (3) R = 255 G = 0 B = 0 (4) R = 255 G = 255 B = 0
Таким образом, он будет чередовать цвета красного, желтого, красного, желтого цветов, причем два "красных" по существу безукоризненно отличаются друг от друга, а два желтых также невероятно отличаются друг от друга.
Но сортировка по HLS работает намного лучше, вообще говоря, и я думаю, что HSL даже лучше этого; с или красным будет рядом друг с другом, а желтые будут рядом друг с другом.
Но у HLS/HSL есть некоторые проблемы; вещи, которые люди воспринимают как "черные", могут быть разделены далеко друг от друга, как и вещи, которые люди воспринимают как "белые".
Опять же, я понимаю, что я в значительной степени должен признать, что будут такие расколы, как это; Мне просто интересно, нашел ли кто-нибудь лучший способ, чем HLS/HSL. И я знаю, что "лучше" несколько произвольно; Я имею в виду "более естественное для обычного человека".
Например, неопределенная мысль, которую я имел, но еще не пробовал, возможно, "L - это самое главное, если она очень высокая или очень низкая", но в остальном это наименее важно. Кто-нибудь пробовал это? Хорошо ли это работает? Что конкретно вы выбрали "очень низкий" и "очень высокий"? И так далее. Или кто-нибудь нашел что-нибудь еще, что улучшило бы HSL?
Я также должен отметить, что я знаю, что я могу определить кривую заполнения пробела через куб цветов и упорядочить их одномерно, как они будут встречаться при движении по этой кривой. Это устранит предполагаемые разрывы. Однако это не совсем то, что я хочу; Я хочу, чтобы приличные общие масштабные группировки были больше, чем идеальные мелкие группы.
Заранее благодарим за помощь.