import csv
import matplotlib.pyplot as plt
import numpy as np
source = open( 'pendule.csv', 'r')


t,x,y = [],[],[]

reader = csv.reader(source,delimiter=';')


liste_txy = list( zip(*reader) )  #renvoie une liste de tuples: (t,x,y)
t= [ float( liste_txy[0][i].replace(',','.') ) for i in range(1, len(liste_txy[0])-1) ]
x= [ float( liste_txy[1][i].replace(',','.') ) for i in range(1, len(liste_txy[1])-1) ]
y= [ float( liste_txy[2][i].replace(',','.') ) for i in range(1, len(liste_txy[2])-1) ]

print("t(s)", t)
print("x(m)", x)
print("y(m)", y)
nbrePoints=len(x)
print("nombre de Points=", nbrePoints)

# TRAJECTOIRE

x=np.array(x)   # on change x de type pour le passer en array
y=np.array(y)
t=np.array(y)

coeff_model=np.polyfit(x,y,2)   # renvoie un array avec les coefficients du polynome)
ymod = ............................................ """Code à compléter pour calculer les valeurs modélisées de y d'après les coeff du polynome"""

plt.plot(x,y,'go',label="expérimental")
plt.plot(x,......,'b-',label="modèle")  """Code à compléter pour obtenir la trajectoire modélisée à partir des valeurs modélisées de y"""
plt.title("TRAJECTOIRE")
plt.legend()
plt.ylabel("y (m)")
plt.xlabel("x (m)")
plt.show()

# VITESSE

vx=[]
for i in range(1,len(x)-1):
    vxi=......................... """Code à compléter pour obtenir les coordonnées vxi de la vitesse au point i"""
    vx.append(vxi)

vy=[]
for i in range(1,len(y)-1):
    vyi=........................ """Code à compléter pour obtenir les coordonnées vyi de la vitesse au point i"""
    vy.append(vyi)

x=list(x)  # on repasse en mode liste pour supprimer la première et la dernière valeur
del x[0]
del x[-1]

y=list(y)
del y[0]
del y[-1]

t=list(t)
del t[0]
del t[-1]

plt.plot(x,y,'go',label="expérimental")
plt.title("VECTEUR VITESSE")
plt.legend()
plt.ylabel("y (m)")
plt.xlabel("x (m)")

for j in range(0,...........):   """Code à compléter pour limiter le tracé des vecteurs vitesse sur une 1/2 période d'oscillations"""
    ..........................................   """Code à créer pour obtenir le tracé en rouge des vecteurs vitesse aux points de coordonnées (xi,yi)"""

plt.ylim(min(y)-0.05,max(y)+0.05)
plt.show()

# ENERGIE

vx=np.array(vx)   # on change le type pour passer en Array (tableau de valeur)
vy=np.array(vy)
x=np.array(x)
y=np.array(y)
t=np.array(t)

v=...................  """Code à créer pour calculer les valeurs de la vitesse"""
m=0.050
g=9.81

Ec=..................   """Code à créer pour calculer les valeurs de l'énergie cinétique"""
Epp=.................   """Code à créer pour calculer les valeurs de l'énergie potentielle de pesanteur"""
Em=...................  """Code à créer pour calculer les valeurs de l'énergie mécanique"""

plt.plot(........................)   """Code à compléter pour représenter en vert  l'évolution au cours du temps des valeurs de l'énergie cinétique"""
plt.plot(........................)   """Code à compléter pour représenter en rouge  l'évolution au cours du temps des valeurs de l'énergie potentielle"""
plt.plot(........................)   """Code à compléter pour représenter en bleu l'évolution au cours du temps des valeurs de l'énergie mécanique"""
plt.title("EVOLUTION DES ENERGIES")
plt.legend()
plt.ylabel("..........(.....)") """Code à compléter pour afficher les grandeurs et les unités en abscisse et en ordonnées"""
plt.xlabel("...........(.....)")

..................  """Code à créer pour demander l'affichage de la courbe"""
