from vpython import * #GlowScript 2.7 VPython ball = sphere(pos=vector(-5,0,0),radius=1,color=color.red,make_trail=True) wall = box(pos=vector(6,0,0),size=vector(0.2,12,12),color=color.green) wallL= box(pos=vector(-6,0,0),size=vector(0.2,12,12),color=color.green) wall1 =box(pos=vector(0,6,0),size=vector(-12,0,12),color=color.green) wall2 =box(pos=vector(0,-6,0),size=vector(-12,0,12),color=color.green) vscale=0.1 ball.velocity=vector(25,3,0) varr=arrow(pos=ball.pos,axis=vscale*ball.velocity,color=color.yellow) delta=0.005 t=0 while(t>=0): rate(100) if(ball.pos.y>wall1.pos.y): ball.color=color.white ball.velocity.x=-ball.velocity.x ball.velocity.y=-ball.velocity.y varr.axis=ball.velocity*vscale ball.pos=ball.pos+(ball.velocity*(delta)) varr.pos=varr.pos+(ball.velocity*(delta)) t=t+delta if(ball.pos.x==wall.pos.x): ball.velocity.x=-ball.velocity.x varr.axis=ball.velocity*vscale ball.pos=ball.pos+(ball.velocity*(delta)) varr.pos=varr.pos+(ball.velocity*(delta)) t=t+delta else if(ball.pos.x==wallL.pos.x): ball.velocity.x=-ball.velocity.x varr.axis=ball.velocity*vscale ball.pos=ball.pos+(ball.velocity*(delta)) varr.pos=varr.pos+(ball.velocity*(delta)) t=t+delta else: ball.pos=ball.pos+ball.velocity*delta varr.pos=varr.pos+(ball.velocity*(delta)) t=t+delta