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);