Processing
# Processing

Processing è una libreria grafica che consente di sviluppare applicazioni di vario tipo, come videogiochi, animazioni, contenuti interattivi e opere d'arte generativa.

Basandosi sul linguaggio Java, ne eredita la sintassi, i comandi e il paradigma di programmazione orientata agli oggetti, ma in più mette a disposizione numerose funzionalità per gestire in modo facile gli aspetti grafici e multimediali.

È distribuito nei termini della licenza libera GNU General Public License (GPL) ed è compatibile con i sistemi operativi Linux, macOS e Microsoft Windows.

Processing può interagire con la scheda hardware Arduino.

## Caratteristiche

Il pacchetto, scaricabile gratuitamente dal sito ufficiale, mette a disposizione un ambiente di sviluppo integrato (IDE).

### Sketch

Le varie creazioni sono chiamate sketch e sono organizzate in uno sketchbook. Ogni sketch contiene in genere, oltre alle classi che lo compongono, anche una cartella data in cui viene inserito il materiale multimediale utile all'applicazione, come, ad esempio, immagini, font e file audio.

Ogni applicazione creata può inoltre essere esportata come Java applet.

**Esempio di Sketch in Processing**

Per creare uno sketch dinamico Processing mette a disposizione una funzione draw che viene eseguita per ogni frame; la funzione setup invece, viene invocata una sola volta al lancio dello sketch .

### Dichiarazioni

All'inizio vengono dichiarate le variabili globali. Nel caso dell'esempio sopra riportato, sono due float che indicano rispettivamente gli spostamenti x e y.

### Setup

Nel metodo setup di questo esempio, vengono impostati diversi parametri: size indica le dimensioni della finestra dell'applicazione; smooth servirà invece per applicare l'Antialiasing a eventuali figure geometriche (primitive e non) all'interno dell'applicazione.

La seconda riga del setup serve invece a creare font; una nuova istanza di PFont, la classe che in Processing rappresenta il font da utilizzare all'interno dell'applicazione: il font scelto ("Calibri-24.vlw") viene prima caricato tramite il metodo loadFont e in seguito viene adottato (con textFont) per il testo nella riga successiva.

### Draw

In draw viene prima impostato il background, ovvero lo sfondo, che in genere deve essere reimpostato a ogni frame: infatti, se non viene reimpostato ogni volta, le animazioni rimarranno letteralmente impresse sullo sfondo.

L'istruzione text permette invece di renderizzare nello sketch un messaggio, che adotta il font già scelto in precedenza in setup e la posizione individuata dalle coordinate xoffset e yoffset, i cui incrementi successivi(indicati da xoffset++ ed yoffset++) permettono di muovere il testo dall'alto a sinistra fino in basso a destra.

## Processing.js

Processing.js è un porting di Processing per JavaScript, con il quale è possibile creare contenuti multimediali avanzati per HTML5.

