Gli array (o vettori) possono essere considerati come delle variabili concatenate in sequenza, sono utili x organizzare dati all’interno di un programma; x prima cosa un array va dichiarato (specificato se conterrà valori interi o con la virgola) e inizializzato (specificato il numero di valori contenuti)

Proc14

L’array quindi evita di utilizzare molte variabili potendo immagazzinare grandi quantità di dati in maniera sequenziale.

Altri interessanti esempi sugli array li trovate a questa pagina: http://processing.org/learning/2darray/

Per gestire il testo i 2 comandi + importanti sono “char ();” e “String ();” che in pratica sono 2 tipi di variabili; il primo può contenere un unico carattere tra 2 apici, mentre il secondo anche + parole senza apici. Per utilizzare i font bisogna prima dichiararli importando il tipo di carattere e la relativa dimensione con il comando “Menù Tool -> Create Font”, si aprirà una finestra in cui scegliere tra i font installati.

Proc15

Passiamo a analizzare i comandi e le istruzioni relative alle trasformazioni sposta/ruota/scala; l’istruzione “translate ();” sposta tutti gli oggetti seguenti in X e Y secondo le coordinate assegnate, se utilizziamo + istruzioni “translate()” i loro valori si sommano/sottraggono.

Proc16

Gli stessi concetti sono validi anche per il comando “rotate ()”, bisogna tenere a mente però che le rotazioni in Processing vengono date in radianti (360°= 2 radianti = 2xπ); il punto d’origine della rotazione ha coordinate (0, 0)

Proc17

Identico discorso per l’istruzione “scale ();”

Proc18

Continuiamo analizzando alcuni esempi

Proc19

In questo semplice programma inizialmente vengono dichiarate alcune variabili di tipo float (con la virgola) a cui successivamente viene assegnato un valore random, premendo run lo schermo si riempirà in maniera casuale di punti di varie dimensioni e vari grigi; è interessante notare a questo punto che spostando l’istruzione “background ();” dal void setup al draw lo schermo verrà ripulito di volta in volta

Proc20

Se invece volessimo generare i punti sempre in maniera casuale, ma con determinate probabilità x quanto riguarda ad esempio il colore e le dimensioni:

Proc21

Nel seguente esempio ci sono 3 cerchi che si muovono verticalmente lasciando una scia, le coordinate sono assegnate attraverso le variabili “x” e “y”: x quanto riguarda il primo cerchio “x” è un quarto della lunghezza dello schermo, mentre “y” ha valore 0 (zero) a cui viene sommato di volta in volta 1 px, il che da l’impressione del movimento; le coordinate del secondo cerchio sono moltiplicate x 2 e di conseguenza anche lo spostamento, mentre il terzo cerchio le ha triplicate. Aumentando il valore sommato a “y” o i moltiplicatori l’effetto della scia lasciata sullo schermo andrebbe “perso”.

Proc22

In questo breve esempio invece abbiamo un cerchio che segue il mouse, poiché le coordinate del suo centro coincidono sempre con le coordinate del mouse

Proc23

Partendo dall’esempio precedente potremmo creare un’applicazione che simula il disegno attraverso lo spostamento/click del mouse: x prima cosa impostiamo la variabile “boolean” (che può avere i 2 valori “false” e “true”) su false, nel “void draw” indichiamo che quando la variabile è “true” deve disegnare un’ellissi con le stesse coordinate del mouse, di seguito nel “void mousePressed” indichiamo che la variabile invertirà il suo valore al clic del mouse (il simbolo “!” è una negazione).

Proc24

In questo altro esempio è possibile vedere un altro tipo di interazione tra oggetto visualizzato e movimento del mouse, inoltre il colore degli oggetti in scena cambia in funzione del tempo... una volta superato il valore massimo “(255)” non visualizza nessun riempimento per questo con if ho imposto una soglia per la quale il fill sarà bianco.

Proc25

Volendo “migliorare” l’esempio” che simula il disegno di una linea con il movimento del mouse invece di utilizzare un’ellissi si potrebbe utilizzare una linea che va dalle coordinate precedenti (pmouseX ,pmouseY) del mouse alle attuali (mouseX , mouseY)... in modo tale da avere la sicurezza che il tratto sarà continuo.

Proc26

Con l’aggiunta del void keyPressed ad esempio si potrebbe “resettare” lo sfondo premendo un qualsiasi tasto e quindi poter riprendere a disegnare

Proc27

In questo esempio vengono messi in relazione i valori “R,G,B,A” del riempimento con la posizione del mouse.

Proc28

---
Questo articolo è stato importato automaticamente dal forum il 31/lug/2014
Per vedere il post originale e/o i commenti sul forum prima di quella data clicca qui