Le trasformazioni avvengono in funzione della posizione dell’oggetto rispetto all’origine.
Le trasformazioni 3d richiedono l’uso del parametro P3D oppure OPENGL in combinazione con size().
Le trasformazioni si applicano a tutto quello che succede dopo la chiamata di una funzione e chiamate successive accumulano i loro effetti.
Se una funzione è chiamata all’interno di draw(), la sua trasformazione sarà azzerata quando draw() ricomincia la sua esecuzione.
Gli effetti sono influenzati dall’uso delle funzioni pushMatrix() e popMatrix().
translate()
Specifica lo spiazzamento di oggetti all’interno della finestra grafica.
Il parametro x specifica la traslazione destra/sinistra, il parametro y specifica la traslazione alto/basso, e il parametro zspecifica la traslazione avanti/indietro rispetto allo schermo.
Chiamare translate(50, 0) e poi translate(20, 0) è lo stesso che translate(70, 0).
rotate()
Ruota un oggetto della quantità specificata con il parametro angle.
Gli angoli devono essere specificati in radianti (con valori da 0 a 2*PI) oppure convertiti in radianti con la funzioneradians().
Chiamare rotate(PI/2) e poi rotate(PI/2) è lo stesso che rotate(PI).
Tecnicamente, rotate() moltiplica l’attuale matrice di trasformazione per una matrice di rotazione.
rotateX()
Ruota un oggetto intorno all’asse X della quantità specificata con il parametro angle.
rotateY()
Ruota un oggetto intorno all’asse Y della quantità specificata con il parametro angle.
rotateZ()
Ruota un oggetto intorno all’asse Z della quantità specificata con il parametro angle.
scale()
Aumenta/diminuisce la dimensione di un oggetto espandendo/contraendo i sui vertici.
I valori di scala sono specificati come percentuali.
La chiamata di funzione scale(2.0) aumenta le dimensioni di una figura del 200%.
Chiamare scale(2.0) e poi scale(1.5) è lo stesso che scale(3.0).
pushMatrix()
popMatrix()
Per capire pushMatrix() e popMatrix() è necessario capire il concetto di stack.
La funzione pushMatrix() salva il sistema di coordinate attuale nello stack e popMatrix() ripristina il sistema di coordinate precedente. pushMatrix() e popMatrix() sono utilizzate insieme alle altre funzioni di trasformazione e possono essere annidate per controllare l’ambito delle trasformazioni.
applyMatrix()
…
resetMatrix()
…
printMatrix()