У меня есть список нескольких разных значений "случайных" цветов (не менее 1 и не более 8 цветов). (Случайный означает, что нельзя сказать об их взаимном «контрасте».)
Цвета задаются как значения RGB (возможное упрощение: как значения H в модели HSL или в какой-либо другой цветовой системе по выбору — у меня есть некоторая степень контроля над тем, как генерируются исходные цвета).
Мне нужно вычислить одно значение одного цвета, которое является наиболее «контрастным» (то есть визуально различимым) из всех цветов из списка.
Практические критерии контраста для случая с 8 цветами:
Если мы нарисуем 9 квадратов, залитых нашими цветами следующим образом:
[1][2][3] [4][X][5] [6][7][8]
Цвет квадрата X должен быть четко отличим от всех соседних цветов.
Возможное упрощение: уменьшите максимальное количество цветов с 8 до 4 (квадраты 2, 4, 5, 7 в примере не учитывают диагонали).