Pattern casuali con for annidati

variabili

Con una probabilità del 50% può essere disegnato casualmente un modulo anziché l'altro.

// height=300 lines=auto
function setup() {
    createCanvas( 670, 300 );
    background( 240 );

    for (var y=0;  y<height;  y+=10) {
        for (var x=0;  x<width;  x+=10) {

            if (random() < 0.5) {
                line( x,y+5, x+5,y );        // disegna  /
                line( x+5,y+10, x+10,y+5 );  // disegna    /
            } else {
                line( x+5,y, x+10,y+5 );     // disegna    \
                line( x,y+5, x+5,y+10 );     // disegna  \
            }
        }
    }
}

Provare a ridurre o aumentare le probabilità (0.5) che venga disegnato il primo modulo.

Provare a modificare i moduli tenendo conto che le coordinate x devono essere comprese fra x e x+10 e le coordinate y fra y e y+10, ad esempio:

circle( x+5,y+5, 10 );
square( x,y, 10 );
line( x+5,y, x+5,y+10 );                   // |
line( x,y+5, x+10,y+5 );                   // —
quad( x+5,y, x+10,y+5, x+5,y+10, x,y+5 );  // 🝔
arc( x+5,y, 10,10, 0,PI );                 // ︶
arc( x+5,y+10, 10,10, PI,TWO_PI );         // ︵
...

Se si usano forme piene si consiglia di disattivare il riempimento inserendo un noFill() prima dei for.