SlideShare a Scribd company logo
Processing
E arte digitale
Daniele Barattieri di San Pietro
21/10/2016 Daniele Barattieri
2
Bio - Daniele
● Studente di Ing Informatica
● Sedicente Digital Artist
● Programmatore
● InfoSec wannabe
● Presidente µHack
● Lavoro
21/10/2016 Daniele Barattieri
3
Processing WUT?!
● Nasce nel 2001 al MIT come libreria
JAVA
● Nel 2012 prende vita propria grazie
alla Processig Fundation
● Orientato a utenti alle prime armi
grazie all’immediato feedback visivo
● Attualmente alla versione 3
...per altro andate su Wikipedia
21/10/2016 Daniele Barattieri
4
Download
● Sito ufficiale: https://processing.org/
● Scompattate e avviate...
21/10/2016 Daniele Barattieri
5
Attenzione!
● Saranno date per scontate nozioni
base di programmazione (variabili,
funzioni, ecc)
● Se avete domande, fatele subito
prima che non riusciate più a capire
nulla
● Per eventuali approfondimenti,
offritemi una birra e vi spiegherò tutto
quello che vorrete
21/10/2016 Daniele Barattieri
6
WARNING: MEMES
21/10/2016 Daniele Barattieri
7
→ Such Processing!
21/10/2016 Daniele Barattieri
8
Hello WORLD
21/10/2016 Daniele Barattieri
9
Hello FUNCTIONS
● Setup()
– Chiamata una sola
volta all’inizio
– Come il nome, serve
per preparare
variabili e ambiente
di lavoro
● Draw()
– Chiamata
ciclicamente
– Corpo principale
dello sketch,
mettiamo qui tutta
la parte di disegno
21/10/2016 Daniele Barattieri
10
Gimme size() – gimme life!
● Specifica la
dimensione dello
sketch
– Da processing 3 non si
può modificare a
runtime.. più o meno :D
– Va chiamata all’interno di
setup()
– Vi si può specificare il
motore grafico
21/10/2016 Daniele Barattieri
11
Sistema di coordinate
● L’origine sta
nell’angolo in
alto a sinistra
– Y invertita!
● Unita: pixel
● Può disegnare
“offscreen”
21/10/2016 Daniele Barattieri
12
Piccoli passi...
● Point(x,y)
– Disegna un singolo
punto in X-Y
● Line(sx,sy,ex,ey)
– Traccia una linea
partendo da SX-SY
fino a EX-EY
● Circle(x,y,w,h)
– Disegna un ellisse
inscritto nel rettangolo
con angolo superione in X-
Y, larghezza W e altezza H
● Rect(x,y,w,h)
– Disegna un rettangolo,
ancolo superiore sinistro
in X-Y, di larghezza W e
altezza H
21/10/2016 Daniele Barattieri
13
Remember… → → ; ← ←
● Il punto e virgola è importante!
21/10/2016 Daniele Barattieri
14
First sketch
21/10/2016 Daniele Barattieri
15
ESERCIZIO
1)Disegnare altre due faccine in altre
due posizioni
21/10/2016 Daniele Barattieri
16
21/10/2016 Daniele Barattieri
17
...che sbatta
21/10/2016 Daniele Barattieri
18
ENTER THE MATRIX!
● PushMatrix()
– Da chiamare prima
per “salvare”
l’attuale matrice di
riferimento
● PopMatrix()
– Da chiamare dopo
per ripristinare
l’ultimo sistema di
riferimento
21/10/2016 Daniele Barattieri
19
Just translate and rotate..!
● Translate(x,y)
– Sposta il sistema di
riferimento generale
alle coordinate a X-Y
● Rotate(ß)
– Ruota il sistema di
coordinate di ß
radianti
21/10/2016 Daniele Barattieri
20
Attenzione all’ordine!
● L’ordine con cui
vengono chiamate
queste funzioni è
importante!
21/10/2016 Daniele Barattieri
21
It’s Transform TIME!
1)PushMatrix
2)Translate/Rotate
3)Draw something
4)PopMatrix
5)...and repeat!
21/10/2016 Daniele Barattieri
22
And now… COLORS!
21/10/2016 Daniele Barattieri
23
Stroke() - Fill() - ColorMode()
● Stroke()
– Imposta il colore dei
contorni
● Fill()
– Imposta il colore di
riempimento
● ColorMode()
– Seleziona che tipo di
riferimento a colore usare
1)RGB - Red/Green/Blue
2)HSB - Hue/Saturation/Brightness
21/10/2016 Daniele Barattieri
24
It’s something color
21/10/2016 Daniele Barattieri
25
Tweak Mode
● Fighissima funzionalità di Processing 3!
– Consente la modifica di alcuni parametri
dello sketch durante l’eseguzione dello
stesso
Menu → Sketch → Tweak
OPPURE
CTRL + MAIUSC + T
21/10/2016 Daniele Barattieri
26
TWEAKING BABY!
21/10/2016 Daniele Barattieri
27
21/10/2016 Daniele Barattieri
28
Mouse e tastiera
● Il mouse e la tastiera vengono
costantemente monitorati
– Processing mette a disposizione funzioni che
vengono automaticamente chiamate quando si
verifica un determinate evento
– Esistono anche variabili globali costantemente
aggiornate relative a mouse e tastiera
21/10/2016 Daniele Barattieri
29
Mickey Mouse
– mouseX & mouseY
– mousePressed
– mouseButton
– mousePressed()
– mouseReleased()
– mouseClicked()
– mouseReleased()
– mouseMoved()
– mouseDragged()
– mouseWheel()
21/10/2016 Daniele Barattieri
30
...e ovviamente la tastiera!
– key
– keyCode
– keyPressed
– keyPressed()
21/10/2016 Daniele Barattieri
31
One try, one kill!
21/10/2016 Daniele Barattieri
32
Background
● Background()
– Funzione che
cancella tutto!
– Accetta in ingresso
un colore
21/10/2016 Daniele Barattieri
33
Cicli e condizioni
● I cicli ci permettono di eseguire più
volte un pezzo di codice
– Possiamo usare sia il ciclo principale “draw()”
oppure istruzioni come “for” e “while”
● I blocchi condizionali ci permettono di
variare il flusso di eseguzione del
codice
– Blocchi “if..elseif...else” oppure “switch..case”
21/10/2016 Daniele Barattieri
34
Cicli “for”
● Sintassi:
for(start;stop;step){
//codice//
}
● Il ciclo inizia
stabilendo la
condizione di
“start”
● Ad ogni
iterazione esegue
“step” e
controlla la
condizione
“stop”
21/10/2016 Daniele Barattieri
35
Condizioni “if..elseif..else”
● Se la condizione
è vero allora
esegue il codice,
altrimenti lo salta
● Sintassi:
if ( condizione ){
//codice//
} else if (cond.){
//altro codice//
} else {
//altro ancora
codice//
}
21/10/2016 Daniele Barattieri
36
Attenzione alle condizioni!
21/10/2016 Daniele Barattieri
37
Linee
21/10/2016 Daniele Barattieri
38
...risultato?
21/10/2016 Daniele Barattieri
39
Questo titolo è davvero lungo perché volevo
scrivere qualcosa di più interessante ma non
sapevo come dirlo...
21/10/2016 Daniele Barattieri
40
Miglioriamo il codice
● Processing ha tante
variabili globali
molto utili
– Width & height
dimensione attuale dello
sketch
● Ricordatevi di
commentare!
– Aggiungendo “//”
potete inserire dei
commenti al codice!
21/10/2016 Daniele Barattieri
41
Cool stuff!
...si ma
come? :/
21/10/2016 Daniele Barattieri
42
Idee???
21/10/2016 Daniele Barattieri
43
Soluzione
21/10/2016 Daniele Barattieri
44
Get to the choppa!
● ...Ma non
dimentichiamoci
dell’interattività!
● Cerchiamo di
mettere un po' di
colore..
21/10/2016 Daniele Barattieri
45
Codice completo
21/10/2016 Daniele Barattieri
46
Un paio di cenni..
● Ci sono alcune funzioni molto
interessanti:
– Random(): restituisce numeri casuali
– Sin() / Cos() / .. : per le funzioni trigonometriche
– NoLoop(): per eseguire Draw() una sola volta
– Fill() / noFill() / stroke() / noStroke(): da guardare
– Millis(): restituisci i millisecondi dall’avvio
– Text(): per disegnare una scritta
– ...tantissimo altro…!
https://www.processing.org/reference/
21/10/2016 Daniele Barattieri
47
Ultimo argomento!
● Per salvare l’attuale
output dello sketch
usare la funzione
saveFrame
● Le immagini sono
salvate nella
cartella dello
sketch: “CTRL + K”
per aprirla
● Sintassi:
saveFrame(path)
21/10/2016 Daniele Barattieri
48
Spazio alla fantasia!
● Ora non resta
altro che
immaginare!
Provate a
modificare a
piacere lo sketch,
cercando di
creare nuove
forme…!
21/10/2016 Daniele Barattieri
49
Consigli e link utili
● https://www.openprocessing.org/
● https://www.processing.org/exhibition/
“Da piccoli bug derivano grandi opere..!”
-cit. Daniele Barattieri
21/10/2016 Daniele Barattieri
50
In the next episode..!
● Nella prossima lezione vedremo:
– Programmazione più complessa
– ...altri Memes! ←
– Introduzione all’uso degli Oggetti
– Librerie
– ...altri Memes! ←
– Ambiente 3D
– Interazione con dispositivi
– ...altri Memes! ←
21/10/2016 Daniele Barattieri
51
Compiti per la prossima volta!
● Vogliamo ottenere un effetto simile alla
testata del sito di Processing!
21/10/2016 Daniele Barattieri
52
Domande?
21/10/2016 Daniele Barattieri
53
Grazie
● Contatti
– Mail: danielebarattieri@gmail.com
– µHack: info@muhack.org
21/10/2016 Daniele Barattieri
54
Bonus MEME

More Related Content

PDF
Presentazione processing 04/11/2016
ODP
Stampa 3D e Regolazione del Piatto
ODP
Anatomia di un'istruzione in Arduino Pt.2
ODP
Anatomia di un'istruzione in Arduino Pt.1
ODP
Intro to-spice
PDF
Car diagnose - Pt. 1
PDF
8-Bit Music - Pt. 1
PDF
Combat robotics - Pt 2
Presentazione processing 04/11/2016
Stampa 3D e Regolazione del Piatto
Anatomia di un'istruzione in Arduino Pt.2
Anatomia di un'istruzione in Arduino Pt.1
Intro to-spice
Car diagnose - Pt. 1
8-Bit Music - Pt. 1
Combat robotics - Pt 2
Ad

Presentazione processing 21/10/2016