Esercizio introduttivo a p5.js
0. Il Web Editor di p5.js
Sito per l’editing online del codice:
P5.js Web Editor.
Non è necessario registrarsi se si vuole solo modificarlo il codice ed eseguirlo [icona “play” in alto a sinistra] ma è necessario creare un profilo se si vuole salvare lo sketch (come viene chiamato il codice scritto).
1. Impostazioni di base
Funzioni setup() e draw()
- il testo scritto dopo i due caratteri “//” non viene eseguito
[in questa pagina i commenti evidenziano e descrivono i cambiamenti progressivi al codice]
Il canvas
- provare a modificare la larghezza (800) e l’altezza (600) del canvas
- provare a modificare i parametri di
background()
mantenendoli nell’intervallo fra 0 e 255
Modello cromatico HSL (Hue, Saturation, Lightness)
- provare a modificare i parametri di
background()
mantenendoli fra 0 e i valori massimi indicati nel primo commento
[per il tono, tenere presente che i colori partono dal rosso: 0360]
- provare a impostare un grigio utilizzando un solo parametro nell’istruzione
background()
2. Disegnare
Istruzioni di disegno
- provare a modificare la posizione (400, 300) e il diametro (50) del cerchio
- istruzioni di disegno: point(), line(), rect(), square(), ellipse(), circle(), eccetera
Impostazione attributi di disegno
- provare a sostituire l’istruzione
fill(0, 100, 50)
con l’istruzionenoFill()
- principali attributi di disegno: stroke(), strokeWeight(), strokeCap(), strokeJoin(), noStroke(), fill(), noFill()
3. Le variabili
Variabili globali
Variabili locali
- le variabili
width
eheight
sono gestite da p5.js e contengono la larghezza e l’altezza del canvas - l’operatore ‘/’ restituisce il risultato della divisione del valore a sinistra per il valore a destra
[altri operatori aritmetici]
4. (Pseudo)Casualità
- l’istruzione
random()
usata senza parametri restituisce un valore casuale fra 0.0 e 1.0 (escluso)
5. Animazione
Animare (con variabile di sistema ‘frameCount’)
- provare a modificare la velocità usando una moltiplicazione [ad es. con
frameCount * 2
] o una divisione [ad es. conframeCount / 2
]
Animare per accumulazione progressiva
6. Interattività
- provare a modificare la posizione relativa del cerchio usando una somma [ad es. con
mouseX + 5
] o una sottrazione [ad es. conmouseY - 10
]
7. Controllo del flusso delle istruzioni
Istruzioni condizionali (if)
- approfondimenti: Operazioni con valori booleani e istruzioni condizionali
- la variabile
mouseIsPressed
è gestita da p5.js e contiene il valoretrue
se uno dei tasti del mouse è premuto efalse
in caso contrario - se il confronto viene fatto con
true
, la condizione si può scrivere anche così:(isMousePressed)
Istruzioni iterate (for)
- approfondimenti: Strutture di controllo iterative
8. Ottimizzazioni
Variazioni occasionali di un parametro
- provare a modificare le probabilità di reimpostazione casuale degli incrementi
dx
edy
sostituendo0.1
(10%) con un valore compreso fra0.0
(0%) e1.0
(100%)
Interattività 2: cambio tono al click del mouse
- provare a modificare i valori minimo e massimo di
random(45, 135)
Interattività 3: cancellazione sfondo con tastiera
Link utili
Sketch completo sul Web Editor
Approfondimenti su p5.js
- Introduzione a p5.js
- Introduction to p5.js
- P5.js: Learn
- How to Program Interactive Art With p5.js
- Grafica generativa con p5.js