Interpolazioni oscillanti

Per evitare salti nell'interpolazione è possibile intervenire sulla variabile di controllo t facendo in modo che il valore torni gradualmente a 0.0 anziché di colpo.

// height=100 lines=auto
let t = 0;
let tVel = 0.02;

let rosso;  // colore iniziale
let verde;  // colore finale

function setup() {
    rosso = color( 255,0,0 );
    verde = color( 0,255,0 );
}

function draw() {

    let interpolato = lerpColor( rosso, verde, t );
    background( interpolato );

    t += tVel;
    if (t < 0 || t > 1.0001) {
        tVel = -tVel;
        t += tVel * 2;
    }
}
if (t < 0 || t > 1.0001) {
    tVel = -tVel;

La velocità (tVel) viene invertita se t esce dai limiti minimo o massimo (inferiore a 0 o maggiore di 1.0001). Con tVel negativo l'interpolazione scenderà da 1.0 a 0.0.

t += tVel * 2;

Fa tornare indietro il valore di t di due volte in modo che rientri nei propri limiti senza mantenere però la posizione avuta prima di uscire.