Cerca di spiegare come fa il seguente programma per R a produrre la figura a lato.   
source("http://macosa.dima.unige.it/r.R")
BOXW(-1,1, -1,1)
traccia <- function(n) for(i in 1:n)
          { s = RunIf(1,c(-1,1)); x = runif(1,-1,1)
              line(x,0, 0,s*(sign(x)-x),  i)     }
           # l'ultima variabile - qui "i" -  il colore
traccia(1000)

Introduciamo delle piccole modifiche per aiutarci a comprenderne il funzionamento:
PLANE(-1,1, -1,1); traccia(10)
#
PLANE(-1,1, -1,1); traccia(10)
#
PLANE(-1,1, -1,1); traccia(50)
#
PLANE(-1,1, -1,1); traccia(1000)

 

Viene usato il generatore di numeri casuali (runif, RUNIF, RunIf, in R: vedi) per generare famiglie di figure con certe caratteristiche. Qui vengono tracciati generici segmenti con estremi posti uno sull'asse x e l'altro sull'asse y in modo tale che la somma delle loro distanze dall'origine sia 1; ad es. se un estremo è (0, 0.8) l'altro è (0.2, 0) o (-0.2,0); il programma evidenzia la figura che questa famiglia di segmenti "descrive" (si tratta dell'inviluppo, ossia della curva che in ogni suo punto ha come tangente esattamente uno dei segmenti della famiglia). runif viene usato per prendere a caso la x dell'estremo sull'asse y e per prendere a caso la parte da cui cade l'altro. La curva ottenuta è assomiglia ad un asteroide.