1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| clear
g=9.81;
D=1;% Diametre du ballon
dt=0.02;% pas de la simulation
DR=100;% Distance entre rebonds
NBR=4;% Nombre de rebonds à réaliser
z=100;% Hauteur initiale du ballon
x=0;
TR=2*sqrt(z*2/g);% T entre rebonds
vx=DR/TR;% Vitesse initiale en x
vz=0;%la balle est lachée avec une vitesse "faible"
figure
h=plot(x,z,'.b','MarkerSize', 32);
axis([0 450 0 z+20])
ylabel('Z','FontSize',13);xlabel('X','FontSize',13)
grid
RBNC=fix(3*rand+0.5)+1% Rang du Rebond court
nbr=0;% Nombre de rebonds en cours
HRB=50;% Hauteur du faux rebond
while nbr <= NBR
vz=vz-g*dt;
x=x+vx*dt;
z=z+vz*dt;
% Test faux rebond
if vz < 0 && nbr == RBNC-1 && z <= HRB
nbr=nbr+1;
vz=-vz;
end
% Test alle au sol
if z <= D/2 && nbr <= NBR
nbr=nbr+1;
z=D/2;% la balle touche le sol
vz=-vz;
end
drawnow
set(h,'Xdata',x,'Ydata',z);
if nbr == NBR+1 && z<=D/2
break
end
end |
Partager