#!/usr/bin/env python
# -*- coding: utf8 -*-
# Soubor: vlna.py
# Datum: 12.1.2014 20:01
# Autor: Marek Nožka, marek <@t> tlapicka <d.t> net
# Licence: GNU/GPL
# Úloha: vlna, wave
#######################################################
 
import matplotlib as mpl
 
#mpl.use('GTKAgg')
mpl.use('Qt4Agg')
 
#mpl.rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})
## for Palatino and other serif fonts use:
#mpl.rc('font',**{'family':'serif','serif':['Palatino']})
#mpl.rc('lines', linewidth=2, color='r')
 
mpl.rcParams['text.usetex']=True
mpl.rcParams['text.latex.unicode']=True
 
import numpy as np
import scipy as sci
import pylab as lab
from pylab import pi
 
import matplotlib.animation as animation
 
fig = lab.figure()
lab.title(u'Závislost okamžitého napětí vlny na vzdálenosti od počátku v čase', size=16, )
lab.grid()
lab.xlabel(r'$\mathrm{x\,[m]} \rightarrow$', x=0.9)
lab.ylabel(r'$\mathrm{u(t,x)\,[V]} \rightarrow$', y=0.9, rotation=90)
 
f = 2
x = lab.linspace(0,3,100)
y = lab.linspace(3,6,100)
t = 0
lamda = 1.4
Um = 2
 
u1 = Um*lab.sin(2*pi*(f*t-x/lamda))
xx=x[10::10]
pp = Um*lab.sin(2*pi*(f*t-xx/lamda))
 
 
m=max(u1)
lab.ylim(1.1*-m,1.1*m)
 
line1, = lab.plot(x,u1, 'b-', linewidth=2)
line3, = lab.plot(xx,pp,'ro', )
 
 
def step(i):
    global t
    t +=0.007
    u1=Um*lab.sin(2*pi*(f*t-x/lamda))
    line1.set_ydata( u1 )
    pp=Um*lab.sin(2*pi*(f*t-xx/lamda))
    line3.set_ydata( pp )
    if i==200:
        for j in xx:
            lab.axvline(j, color='green', alpha=0.5, linewidth=2, linestyle='--')
 
ani = animation.FuncAnimation(fig, step, range(500), interval=70 )
#ani.save('vlna.mp4', bitrate=400, codec='h264')
 
lab.show()
