Processing: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
m →top: clean up |
||
(70 versioni intermedie di 49 utenti non mostrate) | |||
Riga 1:
[[File:Processing 3 logo.png|miniatura|Il logo di Processing]]
'''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>
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]].
È distribuito nei termini della [[licenza libera]] ''[[GNU General Public License]]'' (GPL) ed è compatibile con i [[sistemi operativi]] [[Linux]], [[macOS]] e [[Microsoft Windows]].<ref>
{{cita web
|url=https://processing.org/download/?processing
|titolo=Download 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]].
==Caratteristiche==
[[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,
===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 ''
▲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'''.
▲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.
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 <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
▲<source lang="java">
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 27 ⟶ 42:
}
// metodo draw - eseguito per ogni frame
void draw()
{ background(128);
println("Stampo ad ogni frame su console");
Line 35 ⟶ 51:
yoffset++;
}
</syntaxhighlight>
===Dichiarazioni ===
All'inizio vengono dichiarate le [[variabili globali
===Setup===
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.
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.
===Draw===
In
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.
▲All'inizio vengono dichiarate le variabili globali, in questo caso due float che indicano rispettivamente lo spostamento x e y.
==Processing.js==
▲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.
''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 />
==
{{interprogetto}}
==Collegamenti esterni==
* {{cita web|https://processing.org|https://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]]
|