Casualità

Se una regola compare definita più volte ContextFree 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 graffa aperta questo sarà utilizzato come peso altrimenti il valore di default è 1 per tutte

startshape FIGURA
rule FIGURA 3
{
  SQUARE {}
}
rule FIGURA 1.5
{
  CIRCLE {} 
}
rule FIGURA 0.5
{
  TRIANGLE {}
}

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

Combinando ricorsione e casualità si ottengono delle figure molto interessanti…

figurerandom

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

startshape FIGURERAND
rule FIGURERAND
{
  FIGURA{}
  FIGURERAND{ s 0.5 x -0.25 b 0.2 }
  FIGURERAND{ s 0.5 x +0.25 b 0.2 }
}
rule FIGURA{ CIRCLE{} }
rule FIGURA{ SQUARE{} }

Nota

Se una figura è interessante si può forzare ContextFree 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 < >.

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

Comments are closed.