Tracé des vecteurs vitesse (version sans fonction)¶
Télécharger le notebook
,
le fichier csv
et
la vidéo
,
Lancer le notebook sur binder (lent)
[1]:
import matplotlib.pyplot as plt
%matplotlib inline
import csv
[2]:
with open("chute_balle.csv", 'r', encoding='utf-8') as f :
rfichier = csv.reader(f, delimiter=";")
tableau=[]
index_row=0 # indice d'une ligne du fichier
N=1 # nombre de lignes d'en-têtes
for row in rfichier:
if index_row < N:
index_row = index_row+1
else :
for i in range (len(row)):
if len(tableau) <= i:
X = []
tableau.append(X)
try:
tableau[i].append(float(row[i].replace(",",'.')))
except ValueError:
print('erreur:contenu de cellule non numérique')
continue
t=tableau[0]
print(t)
x=tableau[1]
print(x)
y=tableau[2]
print(y)
[0.76, 0.8, 0.84, 0.88, 0.92, 0.96, 1.0, 1.04, 1.08, 1.12, 1.16, 1.2, 1.24, 1.28, 1.32, 1.36]
[0.00865710739046, 0.106770991149, 0.204884874908, 0.302998758666, 0.398226939961, 0.493455121256, 0.588683302551, 0.675254376456, 0.767596855287, 0.857053631656, 0.946510408024, 1.03019577946, 1.11676685337, 1.19756652235, 1.27836619132, 1.36205156277]
[1.98247759242, 1.97093478256, 1.94496346039, 1.89590651851, 1.83530676678, 1.7545070978, 1.66216461897, 1.55827933028, 1.43707982682, 1.29568040611, 1.15139528293, 0.984024540049, 0.807996689776, 0.605997517332, 0.403998344888, 0.187570660127]
[3]:
vx=[]
for i in range (len(x)-1):
vxi=(x[i+1]-x[i])/(t[i+1]-t[i])
vx.append(vxi)
[4]:
vy=[]
for i in range (len(y)-1):
vyi=(y[i+1]-y[i])/(t[i+1]-t[i])
vy.append(vyi)
[5]:
fig = plt.figure(1,figsize=(12,10))
plt.plot(x,y,'ro-')
plt.xlim(0,max(x)+0.5)
plt.ylim(0,max(y)+0.5)
plt.grid()
plt.xlabel("x(m)")
plt.ylabel("y(m)")
for i in range (len (vx)) :
plt.arrow(x[i],y[i],0.03*vx[i],0.03*vy[i],
fc='b',ec='b',head_width=0.02,
length_includes_head=True)
plt.title("Tracé des vecteurs vitesse")
plt.show()
[ ]: