Oscillazione di parametri: esempio

Per controllare meglio l'oscillazione, conviene separare concettualmente i calcoli in:
- definizione del tempo attuale;
- calcolo del valore (in base al tempo);
- mappatura, per l'adattamento all'uso.
In questo modo è anche possibile condividere lo stesso "tempo" e/o lo stesso "valore" per sincronizzare più parametri fra loro.
// height=100 lines=auto
function draw() {
background(220);
let yt = frameCount * 0.5; // tempo
let yv = sin( yt * 0.1 ) * 0.4; // valore
let y = map( yv, -0.5, 0.5, 0, height ); // mappatura
circle( 50, y, 10 );
}
let yt = frameCount * 0.5; // tempo
Tempo attuale dell'oscillazione di y basato su una velocità che è il 50% di quella del normale avanzamento di frameCount.
let yv = sin( yt * 0.1 ) * 0.4; // valore
Uso dell'espressione ricavata da "oscillation sandobox" sostituendo x con yt e aggiungendo uno "0" davanti ai numeri decimali (per evitare le avvertenze dell'editor).
let y = map( yv, -0.5, 0.5, 0, height ); // mappatura
Mappatura del valore ottenuto (da -0.5 a 0.5) sull'intera altezza del canvas (da 0 a height).
Usare un diverso calcolo del valore di base copia/incollando una delle altre espressioni presenti su oscillation sandbox e sostituendo x con yt.