Ordine delle trasformazioni

L'ordine con cui vengono impostate le trasformazioni può influire molto sul risultato.

// height=100 lines=auto
function setup() {
    background( 200 );

    translate( 50, 50 );    // origine spostata al centro
    rotate( 0.52 );         // rotazione di 30°
    ellipse( 0,0, 50,20 );  // ellisse al centro

    resetMatrix();

    rotate( 0.52 );         // rotazione di 30°
    translate( 50, 50 );    // spostamento sugli assi ruotati
    ellipse( 0,0, 50,20 );  // ellisse in basso a sinistra
}
translate( 50, 50 );    
rotate( 0.52 );

L'origine delle coordinate cartesiane (il punto 0,0) viene spostata prima della rotazione che avverrà quindi attorno alla nuova posizione e non all'angolo in alto a sinistra del canvas.

rotate( 0.52 );
translate( 50, 50 );

Gli assi cartesiani verranno ruotati mantenendo immutata l'origine (che continuerà a trovarsi in alto a sinistra) e la traslazione seguirà l'inclinazione dei nuovi assi.

Provare a modificare i singoli angoli di rotazione per comprendere meglio gli effetti delle diverse combinazioni di trasformazioni.