Processing: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m top: clean up
 
(65 versioni intermedie di 47 utenti non mostrate)
Riga 1:
[[File:Processing 3 logo.png|miniatura|Il logo di Processing]]
{{categorizzare|informatica}}
'''Processing''' è una [[Libreria (software)|libreria grafica]] che consente di sviluppare applicazioni di vario tipo, come [[Videogioco|videogiochi]], [[Animazione|animazioni]], contenuti interattivi e opere d'[[arte generativa]].<ref name=":0">{{Cita web|url=https://processing.org//tutorials/overview|titolo=Processing Overview|sito=Processing|lingua=en|accesso=23 gennaio 2023|dataarchivio=28 maggio 2023|urlarchivio=https://web.archive.org/web/20230528004838/https://processing.org/tutorials/overview/|urlmorto=sì}}</ref><ref>{{Cita web|url=https://www.quora.com/What-language-is-processing-based-on/answer/Carl-Smotricz|titolo=What language is processing based on?|sito=Quora|lingua=en|accesso=23 gennaio 2023}}</ref>
'''Processing''' è un linguaggio di programmazione basato su [[Java]] che consente di sviluppare diversi applicazioni come giochi, animazioni e contenuti interattivi.
Basandosi su [[Java]] ne eredita completamente la sintassi, i comandi e il paradigma di programmazione orientata agli oggetti, in più mette a disposizione numerose funzioni ad alto livello per gestire facilmente l'aspetto grafico e multimediale.
É distribuito sotto licenza [[Open Source]] ed è supportato dai sistemi operativi [[GNU]]/[[Linux]], [[Mac OS X]] e Windows.
 
Basandosi sul [[Linguaggio di programmazione|linguaggio]] [[Java (linguaggio di programmazione)|Java]], ne eredita la [[Sintassi (informatica)|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 [[Computer grafica|aspetti grafici]] e [[Multimedialità|multimediali]].
==Caratteristiche==
 
È distribuito nei termini della [[licenza libera]] ''[[GNU General Public License]]'' (GPL) ed è compatibile con i [[sistemi operativi]] [[Linux]], [[macOS]] e [[Microsoft Windows]].<ref>
Il pacchetto, scariabile gratuitamente dal sito ufficiale mette a disposizione un ambiente di sviluppo integrato (IDE), e le varie creazioni (chiamate '''sketch''') vengono organizzate in uno '''sketchbook'''.
{{cita web
Ogni sketch contiene in genere, oltre alle classi che lo compongono, una cartella '''Data''' in cui viene inserito il materiale multimediale utile all'applicazione, ad esempio immagini, font e file audio.
*[http|url=https://processing.org/ http:/download/?processing.org/]
Ogni applicazione creata può inoltre essere esportata come [[Java applet]].
|titolo==MobileDownload Processing==
|citazione=Processing is available for Linux, Mac OS X, and Windows. [..] Processing is Open Source Software. The PDE (Processing Development Environment) is released under the GNU GPL (General Public License). The export libraries (also known as 'core') are released under the GNU LGPL (Lesser General Public License)
|accesso=30 luglio 2014
|lingua=en
}}</ref>
 
Processing può interagire con la scheda hardware [[Arduino (hardware)|Arduino]].
==Esempio di Sketch in Processing==
 
==Caratteristiche==
In Processing ogni sketch deve contenere contenere almeno una classe principale, in cui sarà presente una funzione '''setup''' e una funzione '''draw''', dove la prima viene eseguita solo una volta al lancio dell'applicazione, mentre la seconda viene eseguita per ogni frame.
[[File:Processing screen shot.png|thumb|[[Ambiente di sviluppo integrato|IDE]] di ''Processing'': nell'esempio, la [[Simulazione (matematica)|simulazione]] del [[moto browniano]] di una [[molecola]]]]
Il pacchetto, scariabilescaricabile gratuitamente dal sito ufficiale, mette a disposizione un [[ambiente di sviluppo integrato]] (IDE), e le varie creazioni (chiamate '''sketch''') vengono organizzate in uno '''sketchbook'''.
 
===Sketch===
Le varie creazioni sono chiamate ''sketch'' e sono organizzate in uno ''sketchbook''.
Ogni sketch contiene in genere, oltre alle [[Classe (informatica)|classi]] che lo compongono, anche una cartella '''Data'data'' in cui viene inserito il materiale multimediale utile all'applicazione, come, ad esempio, immagini, font e file audio.<ref name=":0" />
 
Ogni applicazione creata può inoltre essere esportata come [[Java applet]].
 
====Esempio di Sketch in Processing====
<source lang="java">
Per creare uno ''sketch'' dinamico Processing mette a disposizione una funzione <code>draw</code> che viene eseguita per ogni frame; la funzione <code>setup</code> invece, viene invocata una sola volta al lancio dello ''sketch'' .
//dichiarazione di variabili globali
<sourcesyntaxhighlight lang="java">
// dichiarazione di variabili globali
float xoffset = 0.0;
float yoffset = 0.0;
 
// metodo setup - eseguito solo all'avvio
void setup()
{
size(400, 400);
PFont font = loadFont("Calibri-24.vlw");
Line 28 ⟶ 42:
}
 
// metodo draw - eseguito per ogni frame
void draw()
{
background(128);
println("Stampo ad ogni frame su console");
Line 36 ⟶ 51:
yoffset++;
}
</syntaxhighlight>
</source>
 
===Dichiarazioni ===
All'inizio vengono dichiarate le [[variabili globali,]]. in questoNel caso dell'esempio sopra riportato, sono due float che indicano rispettivamente logli spostamentospostamenti x e y.
Nel metodo '''setup''', vengono settati diversi parametri, '''size''' indica le dimensioni della finestra dell'applicazione, '''smooth''' servirà invece per applicare l'[[Antialiasing]] ad eventuali primitive e figure all'interno dell'applicazione, la seconda riga del setup serve invece a creare una nuova istanza di '''PFont''' che in processing rappresenta font da utilizzare all'interno dell'applicazione, esso viene prima caricato tramite il metodo loadFont e in seguito viene adottato per il testo nella riga successiva.
 
===Setup===
In '''draw''' viene prima impostato il '''background''', ovvero lo sfondo, che deve essere reimpostato a ogni frame, altrimenti le animazioni verranno letteralmente impresse sullo sfondo, se esso non viene reimpostato.
Nel metodo <code>setup</code> di questo esempio, vengono impostati diversi parametri: <code>size</code> indica le dimensioni della finestra dell'applicazione; <code>smooth</code> servirà invece per applicare l'[[Antialiasing]] a eventuali figure geometriche (primitive e non) all'interno dell'applicazione.
'''text''' permette invece di far comparire un messaggio nell'applicazione, che adotterà il font scelto in draw, e verrà scritto a partire dalle coordinate 'xoffset' e 'yoffset', successivamente incrementate, dando così l'effetto finale di un testo da in alto a sinistra di muove fino in basso a destra.
 
La seconda riga del setup serve invece a creare ''font''; una nuova [[Istanza (informatica)|istanza]] di <code>PFont</code>, 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 <code>loadFont</code> e in seguito viene adottato (con <code>textFont</code>) per il testo nella riga successiva.
==Mobile Processing==
 
===Draw===
É presente inoltre uno [[Spin-off]] del progetto, chiamato '''Mobile Processing''', che consente di creare applicazioni per telefoni cellulari e palmari che utilizzano la tecnologia [[Java]], sfruttando il [[Sun Java Wireless Toolkit]].
In '''<code>draw'''</code> viene prima impostato il '''background''', ovvero lo sfondo, che in genere deve essere reimpostato a ogni frame: infatti, altrimentise non viene reimpostato ogni volta, le animazioni verrannorimarranno letteralmente impresse sullo sfondo, se esso non viene reimpostato.
 
L'istruzione <code>text</code> permette invece di renderizzare nello ''sketch'' un messaggio, che adotta il font già scelto in precedenza in <code>setup</code> e la posizione individuata dalle coordinate <code>xoffset</code> e <code>yoffset</code>, i cui incrementi successivi(indicati da <code>xoffset++</code> ed <code>yoffset++</code>) 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]].<ref>{{cita web
|url=http://processingjs.org/
|2=Processing.js
|citazione=Processing.js is the sister project of the popular Processing visual programming language, designed for the web
|accesso=30 luglio 2014
|lingua=en
|dataarchivio=13 marzo 2012
|urlarchivio=https://web.archive.org/web/20120313113719/http://processingjs.org/
|urlmorto=sì
}}</ref>
 
==Note==
<references />
 
==Altri progetti==
{{interprogetto}}
 
==Collegamenti esterni==
*[http {{cita web|https://mobile.processing.org/ http|https://mobile.processing.org/]|lingua=en}}
* {{cita web|1=http://mobile.processing.org|2=http://mobile.processing.org|lingua=en|accesso=12 giugno 2009|urlarchivio=https://web.archive.org/web/20090628224359/http://mobile.processing.org/|dataarchivio=28 giugno 2009|urlmorto=sì}}
 
{{Controllo di autorità}}
{{portale|informatica|software libero}}
 
[[Categoria:Linguaggi di programmazione orientati agli oggetti]]
*[http://processing.org/ http://processing.org/]
*[http://mobile.processing.org/ http://mobile.processing.org/]