Andamenti complessi con bezierPoint()

Una particolare possibilità può essere l'uso della funzione bezierPoint() che permette di modificare le accelerazioni e le decelerazioni, anche se in modo poco intuitivo.

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

function draw()
{
    let b = bezierPoint( 1, -0.25, -0.25, 1, t );
    let y = lerp( 10, 90, b );

    background(200);
    circle( 50, y, 10 );

    t += tVel;
    if (t > 1.0001) {
        t = 0;
    }
}
let b = bezierPoint( 1, -0.25, -0.25, 1, t );
let y = lerp( 10, 90, b );

La variabile b passerà dal valore del 1° parametro a quello del 4° con accelerazioni e decelerazioni determinate dal 2° e dal 3° parametro.

Per capire meglio gli effetti della variazione dei 4 parametri è possibile provare a interagire con questo sketch su OpenProcessing attraverso i tasti freccia.