Web VPython 3.2
#from vpython import *
g = graph(fast=False,
width= 640, height=640,
xmin =-0.1, xmax =1.1,
ymin =-0.1, ymax =1.1)
g_puntiIN = gdots(color=color.red , radius=1)
g_puntiOUT = gdots(color=color.blue, radius=1)
BLOCCO = 999
CONTA = 0
CONTAIN = 0
while(True):
rate(2)
puntiIN = []
puntiOUT = []
for _ in range(BLOCCO):
x = random()
y = random()
if(x**2 + y**2 <= 1):
puntiIN.append([x, y])
CONTAIN += 1
else:
puntiOUT.append([x, y])
g_puntiIN.plot(puntiIN)
g_puntiOUT.plot(puntiOUT)
CONTA += BLOCCO
PIGRECO = 4 * CONTAIN / CONTA
g.title = f"Pi greco = {PIGRECO:.6}, punti = {CONTA}"
Osserva
- CONTA è il numero totale di punti
- CONTAIN è il numero totale di punti caduti all’interno del cerchio
- Due volte al secondo viene aggiunto al grafico un blocco di 999 punti e viene aggiornato il titolo con il nuovo valore approssimato di pi greco
Prova a cambiare
- le dimensioni della finestra grafica, width e height
- il numero di nuovi punti, BLOCCO
- il numero di blocchi al secondo, rate(…)