Più sfere, disposte in modo strategico, realizzano delle figure interessanti
- le coordinate x,y,z dipendono da una formula matematica
- anche il colore è legato a una formula per rendere le figure più interessanti

from vpython import *
NUMERO = 100 # Quante sfere
DURATA = 5 # Quanti secondi
RATE = NUMERO/DURATA # Sfere al secondo
START = -pi # Primo angolo
STOP = +pi # Ultimo angolo
STEP = (STOP-START)/NUMERO # Passo tra due angoli
RAGGIO = 0.5
for angolo in arange(START, STOP, STEP):
rate(RATE)
x = angolo
c = abs(cos(angolo))
sphere(color = vector(c, 1-c, 1),
pos = vector(x, 0, 0),
radius = RAGGIO )

from vpython import *
NUMERO = 100
DURATA = 5
RATE = NUMERO/DURATA
START = -2*pi
STOP = +2*pi
STEP = (STOP-START)/NUMERO
RAGGIO = 1
for angolo in arange(START, STOP, STEP):
rate(RATE)
x = angolo
y = cos(angolo)
z = sin(angolo)
sphere(color = vector(0, abs(y), abs(z)),
pos = vector(x, y, z),
radius = RAGGIO )

from vpython import *
NUMERO = 100
DURATA = 5
RATE = NUMERO/DURATA
START = -pi/2
STOP = +pi/2
STEP = (STOP-START)/NUMERO
for angolo in arange(START, STOP, STEP):
rate(RATE)
x = angolo
r = abs(cos(angolo))
sphere(color = vector(r, 0, 1-r),
pos = vector(x, 0, 0),
radius = r )

from vpython import *
NUMERO = 100
DURATA = 5
RATE = NUMERO/DURATA
START = 0
STOP = 2*pi
STEP = (STOP-START)/NUMERO
RAGGIO = 0.5
for angolo in arange(START, STOP, STEP):
rate(RATE)
x = cos(angolo)
y = sin(angolo)
sphere(color = vector(abs(x), abs(y), 0),
pos = vector( x, y, 0),
radius = RAGGIO )

from vpython import *
NUMERO = 200
DURATA = 5
RATE = NUMERO/DURATA
START = 0
STOP = 2*pi
STEP = (STOP-START)/NUMERO
for angolo in arange(START, STOP, STEP):
rate(RATE)
x = cos(angolo)
y = sin(angolo)
r = abs(x)
sphere(color = vector(abs(x), 0, abs(y)),
pos = vector( x, y, 0),
radius = r )

from vpython import *
NUMERO = 200
DURATA = 5
RATE = NUMERO/DURATA
START = pi
STOP = 3*pi
STEP = (STOP-START)/NUMERO
for angolo in arange(START, STOP, STEP):
rate(RATE)
x = cos(angolo)
y = sin(angolo)
r = sqrt(x*x+(1-y)*(1-y))
sphere(color = vector(abs(y), 0, abs(x)),
pos = vector( x, y, 0),
radius = r )

from vpython import *
NUMERO = 200
DURATA = 5
RATE = NUMERO/DURATA
START = pi
STOP = 3*pi
STEP = (STOP-START)/NUMERO
for angolo in arange(START, STOP, STEP):
rate(RATE)
x = cos(angolo)
y = sin(angolo)
r = sqrt(x*x+(1-y)*(1-y))/2
sphere(color = vector(0, abs(y), abs(x)),
pos = vector(x, y, 0),
radius = r )

from vpython import *
NUMERO = 100
DURATA = 5
RATE = NUMERO/DURATA
START = 0
STOP = 2*pi
STEP = (STOP-START)/NUMERO
RAGGIO = 0.2
for angolo in arange(START, STOP, STEP):
rate(RATE)
x = cos(angolo)
y = sin(angolo)
sphere(color = vector(abs(x), abs(y), 0), pos = vector(x, y, 0), radius = RAGGIO)
sphere(color = vector(abs(x), 0, abs(y)), pos = vector(x, 0, y), radius = RAGGIO)
sphere(color = vector( 0, abs(x), abs(y)), pos = vector(0, x, y), radius = RAGGIO)