Bonjour,

un petit topic pour présenter un environnement de programmation graphique très intéressant par les possibilités qu'il offre: Processing.
Processing est un environnement idéal pour débuter en programmation graphique et expérimenter et visualiser rapidement des algorithmes.

A qui est-il destiné:
- aux débutants complets en programmation
- aux graphistes et aux artistes
- aux développeurs qui veulent expérimenter rapidement des idées et des algorithmes
- aux scientifiques qui veulent faire de la visualisation avancée de leurs données

L'expérimentation est le maître mot de cet outil. Le langage est une sorte de succédané de Java 1.4 nommé P5, qui a un goût de langage de script. Les programmes ne sont d'ailleurs pas nommés "programs" mais "sketches", littéralement "croquis". Mais étant basé sur Java, Processing accepte aussi du code Java en bonne et due forme.

Un exemple de sketch en P5
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
 
//NEBULA
//Matt Schroeter
//December 1st, 2008
//matthanns.com
 
float depth = 400;
 
void setup(){
 size(800, 600, P3D);
 noStroke();
}
 
void draw(){
  background(15, 15, 15);
 
  float cameraY = height/1;
  float cameraX = width/1;
 
  translate(width/2, height/2, -depth/2);
 
  rotateY(frameCount*PI/500);
 
  float fov = cameraX/float(width) * PI/2;
  float cameraZ = cameraY / tan(fov / 2.0);
  float aspect = float(width)/float(height);
 
  perspective(fov, aspect, cameraZ/2000.0, cameraZ*4000.0);
 
 
  translate(width/10, height/10, depth/2);
 
  for(int i=0; i<2; i++) {
    float r = random(100);
    directionalLight(2, 83, 115, // Color
                            1, 10, 0); // The x-, y-, z-axis direction'
    directionalLight(3, 115, 140, // Color
                            10, 10, 0); // The x-, y-, z-axis direction'
  }
 
  for(int i=0; i<10; i++) {
 
    float r = random(20);
 
    rotateX(frameCount*PI/1000);
 
   //alt effect
   //rotateY(frameCount*PI/1000);
 
   for (int y = -2; y < 2; y++) {
     for (int x = -2; x < 2; x++) {
       for (int z = -2; z < 2; z++) {
 
         pushMatrix();
         translate(400*x, 300*y, 300*z);
         box(5, 5, 100);
         popMatrix();
 
         pushMatrix();
         translate(400*x, 300*y, 50*z);
         box(100, 5, 5);
         popMatrix();
 
         pushMatrix();
         translate(400*x, 10*y, 50*z);
         box(50, 5, 5);
         popMatrix();
 
        pushMatrix();
        rotateY(frameCount*PI/400);
        translate(100*x, 300*y, 300*z);
        box(60, 40, 20);
        popMatrix();
      }
    }
  }
 }
}

Le résultat de ce code (activer Java dans votre browser). Plutôt impressionnant, non ?

L'IDE, si on peut dire, n'est guère plus qu'un Notepad avec coloration syntaxique, mais on peut aussi utiliser eclipse. Cependant, les programmes P5 dépassent rarement quelques centaines de lignes. Etant destiné à des non programmeurs, la simplicité est mise en avant, et on peut immédiatement s'amuser avec cet environnement.
Processing est surtout une librairie très complète de fonctions graphiques en 2D et 3D, comprenant des fonctions avancées comme un système de particules, des primitives de traitement d'images, de capture de vidéo, d'export en PDF, de manipulation du son, etc. Un des gros avantages de la documentation, est qu'elle est illustrée d'exemples qui sont directement expérimentables dans Processing.
D'autre part, des sites comme OpenProcessing montrent les belles contributions des gens.


Un petit cours de prog Processing pour débutants en programmation

Et pour vous montrer la puissance créative qu'offre cet environnement, quelques travaux remarquables réalisées avec:
http://www.complexification.net/
http://www.michael-hansmeyer.com

A vos sketches !