Interpolations de couleurs

colortween
Le principe est assez simple, les couleurs sont passées sous forme de nombre (en hexa pour plus de lisibilité).Elles sont d’abord enregistrées dans la propriété d’objets ColorTransform pour pouvoir récupérer leurs composantes RVB, on calcule ensuite la différence entre les composantes des deux couleurs. Cette différence est multipliée par le ratio donné en paramètre (un nombre entre 0 et 1) et le tout est recompilé à la fin pour être renvoyé
Voici le code de ladite fonction
import flash.geom.ColorTransform;
function degrade(d:Number, f:Number, t:Number):Number {
var cD:ColorTransform = new ColorTransform();
var cF:ColorTransform = new ColorTransform();
cD.rgb = d;
cF.rgb = f;
var dR:Number = cF.redOffset-cD.redOffset;
var dV:Number = cF.greenOffset-cD.greenOffset;
var dB:Number = cF.blueOffset-cD.blueOffset;
return 255 << 24 | (cD.redOffset+dR*t) << 16 | (cD.greenOffset+dV*t) << 8 | (cD.blueOffset+dB*t);
}

Et voici un exemple d’utilisation:
(on ne critiquera pas l’aspect visuel, merci :p)

Les utilisations possibles sont plus vastes que la création d’arc en ciel de mauvais goût. Je m’en sers le plus souvent pour nuancer des couleurs obtenues aléatoirement ou couplé à des tweens pour des changements de couleurs progressifs d’objets. Voilà, c’est plutôt simple mais ça peut s’avérer utile dans certaines circonstances

No Responses to “Interpolations de couleurs”

Leave a Reply