Generazione con funzioni ricorsive
All'interno della definizione di una funzione è possibile inserire una o più chiamate alla funzione stessa. Quando la funzione verrà eseguita verranno effettuate anche le chiamate interne che, a loro volta, effettueranno altre chiamate e così via. Sfruttando questa caratteristica è possibile far generare configurazioni composte da un elemento base che si ripete modificato e moltiplicato all'infinito.
function disegnaElemento( parametri, livello )
La funzione ha uno o più parametri che permettono di modificare l'esecuzione a ogni (sotto)chiamata. In alcuni casi il solo livello di ricorsione può essere sufficiente per ricavare gli altri parametri.
livello++;
Per tenere traccia del livello di ricorsione il valore della variabile di riferimento dev'essere incrementato prima delle chiamate interne.
if (livello < totLivelli) {
La variabile usata per tenere tracia del livello di ricorsione viene sempre controllata per capire se continuare con ulteriori chiamate. In caso contrario la ricorsione procederebbe all'infinito impedendo la conclusione dello sketch.
... // modifica di uno più parametri
disegnaElemento( parametriModificati, livello );
Prima che la funzione chiami se stessa è necessario modificare i parametri per evitare che venga disegnato sempre lo stesso elemento nella stessa posizione. La funzione può quindi chiamare se stessa una, due o più volte con parametri diversi ma con lo stesso nuovo valore di livello
.
Espandendo il codice di una ricorsione in cui il livello massimo fosse 3, la sequenza delle chiamate sarebbe questa: