Una regola contiene a sua volta la chiamata di altre regole, ma se chiama se stessa?
Il primo cerchio nero, è seguito da un cerchio più piccolo e più chiaro, che a sua volta …
startshape CERCHI1
shape CERCHI1
{
CIRCLE []
CERCHI1
[
brightness 0.2 // più chiaro
size 0.75 // più piccolo
]
}
Context Free smette di rincorrere le chiamate ricorsive quando la dimensione della figura non è più significativa, altrimenti il rendering richiederebbe tempi infiniti!
Le chiamate ricorsive possono essere due
startshape CERCHI2
shape CERCHI2
{
CIRCLE []
CERCHI2 [ brightness 0.2 size 0.5 x -0.25 ]
CERCHI2 [ brightness 0.2 size 0.5 x +0.25 ]
}
Quattro chiamate ricorsive… il tempo di rendering aumenta notevolmente
startshape CERCHI4
shape CERCHI4
{
CIRCLE {}
CERCHI4 [ brightness 0.2 size 0.45 x -0.25 ]
CERCHI4 [ brightness 0.2 size 0.45 x +0.25 ]
CERCHI4 [ brightness 0.2 size 0.45 y -0.25 ]
CERCHI4 [ brightness 0.2 size 0.45 y -0.25 ]
}
Si rende necessario ridurre size (basta già da 0.5 a 0.45) per raggiungere prima la fine della ricorsione.