Quando la pallina ritorna sul terreno rimbalza (la velocità verticale cambia segno)
if(y < 0):
y = -y
v = -v


A ogni rimbalzo la velocità diminuisce del 10%
v = -v*0.9


L’altezza massima e la velocità diminuiscono fino a …


from vpython import *
g = 9.8 # accelerazione di gravità
y0 = 0 # posizione iniziale
v0 = +20 # velocità iniziale
palla = sphere(color=color.red, make_trail=True, retain=50)
g_p = graph(fast=False, xtitle="tempo", ytitle="posizione")
grafico_p = gcurve(color=color.blue , dot=True)
g_v = graph(fast=False, xtitle="tempo", ytitle="velocità")
grafico_v = gcurve(color=color.green, dot=True)
y = y0
v = v0
t = 0
dt = 0.01
while(y >= 0):
rate(60)
dv = -g * dt
v = v + dv
dy = v * dt
y = y + dy
if(y < 0):
y = -y
v = -v*0.9
palla.pos.y = y
grafico_p.plot(t, y)
grafico_v.plot(t, v)
t = t+dt