Russian Qt Forum
Ноябрь 23, 2024, 15:32 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Градиент цвета  (Прочитано 8902 раз)
Ilya_181
Новичок

Offline Offline

Сообщений: 33


Просмотр профиля
« Ответ #15 : Август 30, 2017, 17:38 »

minC, maxC - начальный и конечный цвета для градиента. Ссылка - чтобы не происходило копирования.
minV, maxV - задают диапазон значений.
val - значение (лежащее в диапазоне minV <= val <= maxV) для которого надо рассчитать промежуточный цвет.


Код
C++ (Qt)
QRgb Interpolate( const QRgb & minC, const QRgb & maxC, qreal minV, qreal maxV, qreal val )
{
 qreal w1 = (val - minV) / (maxV - minV);  // вес maхC
 return qRgb(qRed(minC) * (1 - w1) + qRed(maxC) * w1,
                   qGreen(minC) * (1 - w1) + qGreen(maxC) * w1,
                   qBlue(minC) * (1 - w1) + qBlue(maxC) * w1);
}

Для Qt так будет верно?
Interpolate(Qt::green, Qt::red, 0, 255, 44);

« Последнее редактирование: Август 30, 2017, 17:40 от Ilya_181 » Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.351 секунд. Запросов: 22.