Eliche

Un vettore rivolto inizialmente verso l’alto ruota intorno all’asse x.

from vpython import *
 
canvas(width=640, height=640)    # Dimensioni della finestra grafica 

N = 100                          # Numero di sfere
D = tau/N
R = 1                            # Raggio circonferenza

VETTORE = vector(0, R, 0)        # Vettore unitario

for n in range(N):
    rate(25)

    r = R/100                    # Raggio sfera
    sphere(pos    = VETTORE,
           radius = r)

    VETTORE  = VETTORE.rotate(D, axis=vector(1, 0, 0))

Elica, asse x

Se la posizione lungo l’asse x è variabile si ottiene un’elica

Puoi scegliere

  • la distanza percorsa lungo l’asse x
  • il numero di giri intorno all’asse x
  • il raggio delle sfere
  • …
from vpython import *
 
canvas(width=640, height=640)    # Dimensioni della finestra grafica 

G = 3                            # Numero giri intorno all'asse x
N = 100                          # Numero di sfere
D = G*tau/N                      # Delta angolo
R = 1                            # Raggio circonferenza

DISTANZA = 2*R                   # In orizzontale
dx       = +DISTANZA/N           # Passo orizzontale
x0       = -DISTANZA/2           # Ascissa iniziale
VETTORE  = vector(x0, R, 0)      # Posizione 1° sfera

for n in range(N):
    rate(25)

    r     = R/5                  # Raggio sfera
    red   = abs(VETTORE.y)
    green = 0
    blue  = abs(VETTORE.z)
    sphere(color  = vector(red, green, blue),
           pos    = VETTORE,
           radius = r)

    VETTORE.x += dx
    VETTORE    = VETTORE.rotate(D, axis=vector(1, 0, 0))

Lascia un commento