Programmazione di base con p5.js e VS Code
Disegna nell’area grigia per vedere il risultato del codice successivo.
0. Prima di iniziare
Il codice si scrive in Visual Studio Code, un editor gratuito per Windows, macOS e Linux. Si installa come qualsiasi altro programma, accettando le impostazioni proposte.
I file di base sono contenuti in una cartella di partenza da scompattare dove si tengono i lavori del corso:
- index.html è la pagina che il browser apre: carica p5.js e lo sketch, e non va modificata.
- style.css è l’aspetto della pagina, per ora quasi vuoto.
- sketch.js è il file da aprire e su cui lavorare.
In Visual Studio Code, File › Apri cartella e si sceglie la cartella scompattata (non quella nello ZIP): l’editor mostra i tre file nella colonna di sinistra, e da lì si apre sketch.js.
Per vedere il risultato basta aprire index.html nel browser con un doppio clic, e ricaricare la pagina (F5) dopo ogni salvataggio.
Se si vuole evitare di salvare continuamente lo sketch e ricaricare ogni volta la pagina del browser, si può attivare l’Autosave nelle impostazioni di Visual Studio Code e scaricare l’estensione Live Server che aggiunge una voce “Go Live” in basso a destra.
Per leggere gli errori si può tenere aperta la console del browser:
F12, scheda Console. Se lo sketch non disegna niente, l’errore è quasi sempre scritto lì.
1. Impostazioni di base
Funzioni setup() e draw()
- il testo scritto dopo i due caratteri “//” non viene eseguito
[in questa pagina le parti aggiunte o cambiate a ogni passaggio sono evidenziate, e i commenti le descrivono]
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: 0
360] - 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, 40)con l’istruzionenoFill() - principali attributi di disegno: stroke(), strokeWeight(), strokeCap(), strokeJoin(), noStroke(), fill(), noFill()
3. Le variabili
Variabili globali
Variabili locali
- le variabili
widtheheightsono 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à moltiplicando il valore di
frameCount[ad es. conframeCount * 2] o dividendolo [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 valoretruese uno dei tasti del mouse è premuto efalsein 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 della direzione
- gli incrementi fissi di 2 pixel diventano variabili, e cambiano una volta su dieci
- provare a modificare le probabilità sostituendo
0.1(10%) con un valore fra0.0(0%) e1.0(100%)
Variazioni occasionali del colore
- il nuovo tono si vede dal disegno successivo, perché
fill()viene eseguito prima del ciclo - provare a modificare la frequenza del cambio sostituendo
0.01(1%) con un valore più alto
Link utili
Approfondimenti su p5.js
- Introduction to p5.js, di Stuart Memo
- Tutorials (p5js.org), del sito ufficiale
- The Coding Train, i video di Daniel Shiffman
- Generative Artistry, tutorial di Ruth John e Tim Holman su opere generative storiche