Notre cher Karol devient un artiste numérique dans ses temps de loisir. Ce programme est une approximation automatisée de son travail.
L'algorithme est simple : Il suffit de dessiner les bords gauche et droit des rectangles, puis colorer pixel par pixel en inversant la couleur quand un bord est trouvé.
Des fonctions supplémentaires permettent de redessiner en cliquant et de sauvegarder l'image en tapant retour.
int total = 10;//Number of rectangles color l= color(0); //These two should be different color bg=color(255); void setup() { size(1920, 1200); noLoop(); } void draw() { //Clear previous drawing background(bg); stroke(l); //Select new shades color a = color(random(255), random(255), random(255)), b = color(random(255), random(255), random(255)); //Draw rectangles for (int i=0; i<total;++i) { //Random dimensions within bounds. float x = random(1, 5)*width/10, y = random(1, 5)*height/10, w = random(3, 4)*width/10, h = random(3, 4)*height/10; //Left and right sides of rectangles line(x, y, x, y+h); line(x+w, y, x+w, y+h); } //Fill rectangles pixel by pixel for (int j=0;j<height;++j) { color current=a; for (int i=0;i<width;++i) { if (get (i, j)==l)//Flip color when line is encountered current = current==a? b : a; set(i, j, current); } } } void mousePressed() { redraw(); } void keyPressed() { if (key==ENTER || key==RETURN) save("autoKarol.png"); }