Tag Archives: vpython

Bounce

Tutorial ufficiale


Una pallina bianca

Una pallina azzura e una parete verde a destra

 

La posizione della palla dipende dal tempo: ball.pos=ball.pos+ball.velocity*deltat

Il tempo scorre per alcuni secondi: t=t+deltat

Se la posizione della palla supera quella del muro a destra allora si inverte il segno della velocità

La palla rimbalza sul lato destro ma si perde sul lato sinistro…
Un’altra parete e un’altra condizione per rimbalzare

La palla annega parzialmente nelle pareti, è necessario migliorare il controllo

Un vettore di colore giallo segue la palla e indica direzione e verso del movimento

Per seguire la traiettoria della palla aggiungi automaticamente una traccia grafica: make_trail=True

La traiettoria completamente orizzontale è prevedibile, aggiungi

  1. il movimento in verticale
  2. le pareti in alto e in basso
  3. i controlli corrispondenti

La palla si muove su un piano xy piuttosto che nello spazio 3d, aggiungi

  • il movimento in profondità
  • una parete di fondo
  • la parete frontale è solo immaginata…
  • i controlli corrispondenti


L’animazione può continuare all’infinito modificando la condizione del ciclo

Si può aggiungere una seconda palla con colore e vettore velocità diversi


Ancora…


  1. Più palline
  2. Posizione iniziale, velocità, colore a piacere
  3. Colori delle palline, o delle pareti, che cambiano quando c’è un rimbalzo
  4. Pareti mobili…

Per evitare che la finestra si adatti a ogni intervento dell’utente escludi autoscale prima del ciclo while

 

Sfere

Per cominciare

Installa il modulo con il comando da shell

pip install vpython

Aggiorna il modulo con

pip install vpython --upgrade


Includi in ogni programma la riga di codice

Oltre al modulo vpython importerà tutte le funzioni matematiche e

  • clock()
  • random(), numero casuale in [0.0, 1.0)
  • arange()

La scena tridimensionale e interattiva seguente è stata realizzata con poche righe di codice…


Le differenze principali rispetto a VPython sono

  1. I vettori devono essere definiti esplicitamente con vector(x,y,z) o vec(x,y,z), invece di (x,y,z).
    Vale nelle assegnazioni di pos, size, axis, color, up.
  2. Invece di display si utilizza canvas
  3. Invece di gdisplay si utilizza graph
  4. Alcuni oggetti grafici hanno metodi diversi…
  5. Alcuni oggetti grafici non sono implementati…

Più sfere

Più sfere diventano delle figure interessanti

Wireframe