Здравствуйте, RadmirT, Вы писали:
RT>возникла следующая задача, есть некий объект для которого задается цвет фона, и надпись, нужно определить цвет надписи, чтобы на фоне объекта она выглядела наиболее констрасной, при этом возможное количство цветов надписи ограничено максимум 5 цветами, а цвет фона может быть любой.
Каким образом задаётся цвет фона?
Пусть у нас есть цвет фона (r, g, b) и возможные цвета надписи [(r_i, g_i, b_i)|i=1..n].
Посчитаем для всех цветов яркость: (грубо) y = 0.299*r + 0.587*g + 0.114*b, y_i = 0.299*r_i + 0.587*g_i + 0.114*b_i.
Контрастность цвета i на фоне будет определяться разностью y_i и y: ищем i такое, что |y_i — y| = max.
В частности, можно брать чёрный, если y > 0.5, и белый, если y < 0.5.