Casualità

Se una regola compare definita più volte Context Free sceglierà in modo casuale quale eseguire, quindi per ogni comando Render si otterrà una figura potenzialmente diversa.

Se c’è un numero tra il nome della regola e la parentesi quadra aperta questo sarà utilizzato come peso altrimenti il valore di default è 1 per tutte

startshape FIGURA

shape FIGURA
    rule 3.0 { SQUARE  [] }
    rule 1.5 { CIRCLE  [] }
    rule 0.5 { TRIANGLE[] }

In questo caso i pesi sono 3.0, 1.5 e 0.5 per un totale di 5.
Il quadrato comparirà con probabilità 3/5 = 0.6 (il cerchio 0.3, il triangolo 0.1)

Combinando ricorsione e casualità si ottengono delle figure molto interessanti

Si tratta di due chiamate ricorsive alla regola FIGURERAND ma la FIGURA renderizzata può essere un cerchio o un quadrato

startshape FIGURERAND

shape FIGURERAND 
{
    FIGURA []
    FIGURERAND [ brightness 0.2 size 0.5 x -0.25 ]
    FIGURERAND [ brightness 0.2 size 0.5 x +0.25 ]
}

shape FIGURA
    rule { CIRCLE [] } 
    rule { SQUARE [] }

Osserva

  • Se una figura è interessante si può forzare Context Free a generarla di nuovo utilizzando il tasto < nella barra degli strumenti.
  • In pratica per ogni rendering viene generato un codice di tre lettere che può essere trascritto per essere riutilizzato in seguito oppure può essere recuperato subito tramite i tasti < >.

Lascia un commento