Curva – 1

L’oggetto curve() permette di realizzare inviluppi di sfere, utilizzando la sfera a bassa risoluzione.

  1. PRO: l’interpolazione del colore è automatica.
  2. CONTRO: è necessario aggiungere una sfera iniziale per chiudere il tubo.
  3. 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     

Lascia un commento