# -*- coding: utf-8 -*-
"""
Ugo Hincelin - Novembre 2016
Animation pour montrer que deux ondes progressives peuvent donner une onde stationnaire.
Remarque :
Pour ne pas créer un fichier gif et visualiser directement l'animation dans la fenêtre graphique de pyzo, commenter la ligne plt.savefig(filename) dans la boucle for et le bloc "convert" à la fin du code.
"""

import numpy as np
import pylab as plt
import os

Am = 1
omega = 1
t = 0
k = 1
phi = 0
x = np.linspace(0,100,1000)

for t in range(100):
    t = t/10
    a = Am*np.cos(omega*t-k*x+phi)
    b = Am*np.cos(omega*t+k*x+phi)
    c = a + b
    plt.plot(x,a,'-')
    plt.plot(x,b,'-')
    plt.plot(x,c,'o-')
    plt.xlabel("position x")
    plt.ylabel("vibration")
    plt.xlim(40,60)
    plt.ylim(-2,2)
    i = t*10
    filename = 'fichierTemp'+str('%02d' %i)+'.pdf'
    plt.savefig(filename)
    plt.show()
    plt.pause(0.01)
    plt.clf()

# convert est une fonction d'ImageMagick : option -delay en 1/100 de seconde
cmd = 'convert fichierTemp*.pdf 2ondesP_ondeS.gif'
os.system(cmd)
os.system('rm fichierTemp*.pdf')