argb interpolate(argb *color1, argb *color2, argb *color3=0, argb *color4=0, argb *color5=0, argb *color6=0, argb *color7=0, argb *color8=0);
rez=interpolate ( &(0.3*argb1), &(0.4*argb2), &(0.5*argb3) );
C++ (Qt)result = (C1.Mul(k1) + C1.Mul(k2) + ..).Div(k1 + k2 + ..);
class Pair { ARGB color; float k; Pair* next; Pair(const ARGB& c) {color = c, k=1, next=0;} Pair(const ARGB& c, float k) {color = c, this->k=k, next=0;} Pair(const Pair& p) { c= p.c; k= p.k; next= p.next; } Pair(const Pair& p, const Pair& next) { c= p.c; k= p.k; this->next= next; } ARGB calculateColor() const {...} inline operator ARGB () const {return calculateColor();} inline Pair operator + (const Pair& p) const {return Pair(*this, p);} inline Pair friend operator + (const Pair& p1, const Pair& p2) {return Pair(p1, p2);}};class ARGB { inline Pair operator * (float k) const; {return Pair(*this, k);}};