Ricorsione

Una regola contiene a sua volta la chiamata di altre regole, ma se chiama se stessa?

cerchi1

Il primo cerchio nero, è seguito da un cerchio più piccolo e più chiaro, che a sua volta …

startshape CERCHI1
rule CERCHI1
{
  CIRCLE{}
  CERCHI1{ s 0.75 b 0.2 }
}

ContextFree 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

cerchi2

startshape CERCHI2
rule CERCHI2
{
  CIRCLE{}
  CERCHI2{ s 0.5 x -0.25 b 0.2 }
  CERCHI2{ s 0.5 x +0.25 b 0.2 }
}

Quattro… ma il tempo di rendering aumenta notevolmente

cerchi4

startshape CERCHI4
rule CERCHI4
{
  CIRCLE{}
  CERCHI4{ s 0.45 x -0.25 b 0.2 }
  CERCHI4{ s 0.45 x +0.25 b 0.2 }
  CERCHI4{ s 0.45 y -0.25 b 0.2 }
  CERCHI4{ s 0.45 y +0.25 b 0.2 }
}

Si rende necessario ridurre size (basta già da 0.5 a 0.45…) per raggiungere prima la fine della ricorsione…

Notice: This work is licensed under a BY-NC-SA. Permalink: Ricorsione

Comments are closed.