L’objectif de ce code Processing est de générer un motif fait de cubes. Les cubes sont gérés en 3D : le motif est fait de cubes qui se décalent en tournant (en X, Y Z) sur eux mêmes. La taille, la couleur et le décalage de la rotation sont gérés de façon aléatoire.
- Ces motifs ont ensuite été tramés et imprimés sur du papier calque.
- Exemples d’autres motifs générés :
- Les motifs imprimés sur calque : à venir
- Le code processing : (il faut appuyer sur espace pour que les cubes apparaissent )
float x; float y; int z; //taille du cube : //float R=random(0,120); float R; //espacement entre les cubes : //float R2=R+random(120); float R2; //pas de l'angle de rotation : //float carre = random(2); float carre; //int i=0; int i; void setup(){ //fullScreen(P3D); size(1300,800,P3D); background(255); } void draw(){ if (keyPressed == true) { R=random(0,100); R2=R+random(-R,100); carre = random(-4,4); i=0; println("taille du cube=", R, "px"); println("espace entre deux cubes: ", R2, "px"); println("angle rotation : ", carre, "radians"); cube(); } } void cube(){ translate(R, R); //Première boucle (hauteur) for (float y = 0; y < height; y = y + R2 ) { //Seconde boucle (largeur) for (float x = 0; x < width; x = x + R2) { pushMatrix(); translate(x,y,z); //stroke (random(100)); noStroke(); fill(random(250),random(10,200)); rotateX(carre); rotateY(carre); rotateZ(carre); box(R); popMatrix(); noLoop(); } } }
- La 3D sur Processing : lien