====== Processing ======
{{ :nsi:langages:processing:processing_2021_logo.png?direct&200|}}
[[https://processing.org/|Processing]] est un environnement de développement graphique.
La syntaxe est proche de celle de [[nsi:langages:java:start|Java]] mais simplifiée au maximum. Il est également possible d'adopter un syntaxe proche de Python.
C'est un langage qui s'adresse aux artistes et qui permet donc des créations graphiques de qualité.
===== Démarrage =====
Vous pouvez télécharger processing sur [[https://processing.org/download|cette page]]
Quand vous démarrez processing, vous obtenez une fenêtre comme celle-ci :
{{ :nsi:langages:processing:processing_base.png?direct&400 |}}
Il suffira d'écrire le script dans cette fenêtre et d'utiliser le bouton de lecture.
===== Exemple basique en mode java =====
int i = 100; // variable globale
void setup() { // configuration
size(640, 400); // taille fenêtre
stroke(0,0,0); // couleur du trait
background(250,200,200); // couleur du fond
}
void draw(){ // appelée à chaque rafraîchissement
if (i>0) { // i est la variable globale
circle(320,200,i); // tracé d'un cercle de rayon i
i--;
}
}
''background'' permet également d'effacer l'écran. Voici une variante où le fond est effacé à chaque rafraîchissement.
int i = 100; // variable globale
void setup() { // configuration
size(640, 400); // taille fenêtre
stroke(0,0,0); // couleur du trait
}
void draw(){ // appelée à chaque rafraîchissement
background(250,200,200); // couleur du fond + efface
if (i>0) { // i est la variable globale
circle(320,200,i); // tracé d'un cercle de rayon i
i--;
}
}
Comme en C ou en Java, les types doivent toujours être connus d'avance et les fonctions doivent préciser le type de leur sortie. Les fonctions ''draw'' et ''setup'' ne renvoient rien, c'est pourquoi on note ''void'' avant.
Pour réaliser un graphique, il faudra connaître les nombreuses fonctions comme ''stroke'' ou ''circle''. Pour cela, le mieux est d'aller voir la [[https://processing.org/reference|référence]].
===== Les cours et exemples =====
* [[.:trajectoire|Un point qui suit une trajectoire]]
* [[.:dessiner_objet|Dessiner un objet complexe]]
* Un peu de physique : [[.:bille_qui_rebondit|bille qui rebondit]]
* Avec des tableaux : [[.:billes_qui_rebondissent|billes qui rebondissent]]
Vous pouvez également consulter la [[nsi:tds:start|section animation de cette page]] et cette page qui propose des [[nsi:langages:processing:solutions:start|solutions]] en Processing.