L’oggetto curve() permette di realizzare inviluppi di sfere, utilizzando la sfera a bassa risoluzione.
- PRO: l’interpolazione del colore è automatica.
- CONTRO: è necessario aggiungere una sfera iniziale per chiudere il tubo.
- CONTRO: la bassa risoluzione produce risultati scadenti…
Cinque punti, da sinistra verso destra, con colori alternati

from vpython import *
COLORE1 = color.magenta
COLORE2 = color.cyan
NUMERO = 5
DIST = 6
DELTA = 2*DIST/(NUMERO-1)
x = -DIST
colore = COLORE1
simple_sphere(color = colore, pos = vector(x, 0, 0))
curva = curve()
for i in range(NUMERO):
rate(2)
curva.append(color = colore, pos = vector(x, 0, 0), radius=1)
x +=DELTA
if(i%2 == 0):
colore = COLORE2
else:
colore = COLORE1
Elica
Elica intorno all’asse x: la y e la z sono il coseno e il seno della x

from vpython import *
COLORE1 = color.magenta
COLORE2 = color.cyan
NUMERO = 36
DURATA = 6
RATE = NUMERO/DURATA
DIST = tau
DELTA = 2*DIST/NUMERO
colore = COLORE1
x = -DIST
y = cos(x)
z = sin(x)
simple_sphere(color = colore, pos = vector(x, y, z))
curva = curve()
for i in range(NUMERO+1):
rate(RATE)
y = cos(x)
z = sin(x)
curva.append(color = colore, pos = vector(x, y, z), radius=1)
x +=DELTA
if(i%2 == 0):
colore = COLORE2
else:
colore = COLORE1
Anello
Osserva il cambio del numero di punti: 6/12/24



from vpython import *
COLORE1 = color.magenta
COLORE2 = color.cyan
NUMERO = 24
DURATA = 3
RATE = NUMERO/DURATA
DELTA = tau/NUMERO
colore = COLORE1
angolo = 0
curva = curve()
for i in range(NUMERO+1):
rate(RATE)
x = cos(angolo)
y = sin(angolo)
curva.append(color = colore, pos = vector(x, y, 0), radius=0.25)
angolo += DELTA
if(i%2 == 0): colore = COLORE2
else: colore = COLORE1