Schermo

La cosa fondamentale per un software di grafica è generare immagini su di uno schermo.

image not foundimage not found

Lo schermo di un computer è come una griglia di elementi luminosi chiamati pixels (matrice bidimensionale) e il loro numero sull'asse orizzontale (x) e verticale (y) ne definisce la risoluzione.

image not found

Display window

La display window di Processing è esattamente come uno schermo e le sue coordinate 2D e 3D sono espresse in pixel.

image not found

Ogni pixel ha una sua posizione in un asse cartesiano e possiamo stabilirla calcolando la sua distanza (sempre in pixels) dai punti di origine (valore 0). Infatti se mappiamo uno o più punti di una forma geometrica qualsiasi su uno o più pixel possiamo posizionare qualsiasi oggetto grafico all'interno della display window.

Dimensioni

Se non specifichiamo nulla nel momento un cui eseguiamo uno sketch compare una display window con le dimensioni di default ovvero 100x100 pixels che è anche la sua dimensione minima.

Possiamo modoficarne le dimensioni con la funzione size() che accetta due argomenti: (valore_x, valore_y).

size(800, 600); // crea una finestra di 800x600 pixels

Proviamo a modificare i valori ed eseguire lo sketch sia in una nuova finestra che in modalità Present.

Più è grande la finestra più sforziamo la CPU. Questo rallenta in modo dinamico e direttamente propozionale allo sforzo la frame rate di esecuzione rendendo i movimenti o il cambio dei colori meno fluidi (a scatti) in un eventuale animazione.

Se vogliamo che la display window assuma automaticamente le dimensioni dello schermo sul quale viene proiettata possiamo sostituire la funzione size() con fullScreen()

fullScreen();

Se definiamo le posizioni degli oggetti all'interno della finestra con valori assoluti in pixels e utilizziamo fullScreen() questi non saranno riscalati automaticamente alle dimensioni dello schermo. Dovremo utilizzare un sistema relativo che si relazioni con le variabili di sistema width (larghezza) e height (altezza) che riportano automaticamente i valori dello schermo corrente.

In queste due funzioni possiamo specificare anche il tipo di rendering che vogliamo utilizzare.

size(150, 200, P3D);  // P3D renderer
fullScreen(P2D);      // P2D renderer (default)

Troviamo info sui diversi tipi di renderer nell'help file di setup()

Schermi multipli

Se sono collegati più schermi al computer possiamo scegliere su quale di essi verrà visualizzata la display window scegliendolo nelle Preferenze.

image not found

Nel caso avessimo impostato fullScreen() dovremmo anche specificare come argomento quale schermo sarà in questa modalità.

fullScreen(2);         // sullo schermo 2
fullScreen(P2D, 2);    // se specifichiamo il rendering
fullScreen(P2D, SPAN); // full screen su tutti gli schermi

Se invece volessimo visualizzare lo stesso sketch a metà tra due schermi dovremmo calcolare il size totale dei due schermi (x1 + x2 e/o y1 + y2) e settarlo con la funzione size.

Questa eventualità si verifica perchè quando vogliamo visualizzare due (o più) situazioni differenti su due (o più) schermi diversi dobbiamo farlo suddividendo la display window per il numero degli schermi.