Una domanda agli esperti: la funzione random rnd(x) non dà sempre risultati “casuali”, sembra piuttosto obbedire a leggi geometriche. Per migliorarla attribuisco un valore fisso a cui aggiungo e tolgo altri due valori randomizzati, ma non appaiono ancora del tutto “casuali” le variazioni. Esiste un trucco perché appaia veramente casuale l’effetto?
I numeri restituiti dalla funzione RND(x) non sono veramente casuali, ovviamente, perché sono il risultato di una formula matematica. In questo senso, conoscendo i dati in entrata, si può calcolare il valore in uscita (che quindi, per definizione, non è casuale). Però si tratta di formule che restituiscono valori che normalmente devono "apparire" casuali, cioè l'utente, di norma, non dovrebbe essere in grado di "capire" che dietro questa sequenza di valori c'è una regola.
Nel GDL, a differenza di altri linguaggi, il valore RND è calcolato solo al momento del posizionamento iniziale dell'oggetto, non ogni volta che lo script è reinterpretato. Questo per evitare che durante un'animazione, per esempio, gli alberi cambino completamente forma tra un fotogramma e l'altro.
Per migliorare la casualità della funzione, alcuni suggeriscono di evitare l'uso di argomenti interi. Per esempio, invece di RND(15) si dovrebbe usare RND(14.9999999). Però non ho mai controllato se ciò produca veramente risultati differenti.