from math import*
from tkinter import*
choix=1
def fonction1():
    global choix
    choix=1
def fonction2():
    global choix
    choix=0
def f(x,t):
    k,w=1,1
    if choix>0:
        return 50*cos(w*t-k*x)
    else:
        return 50*exp(-(w*t-k*x)**2)
def liste(t,f):
    L=(0,100-f(0,t))
    for x in range(1,60):
        L+=(10*x,100-f(x,t))
    return L
t=0
flag=0
def avance():
    global liste,t
    can.delete(ALL)
    t+=1
    can.create_line(liste(t,f),width=2,smooth=True,fill='red')
def move():
    global liste,t
    can.delete(ALL)
    t+=0.5
    can.create_line(liste(t,f),width=2,smooth=True,fill='red')
    if flag>0:
        fen.after(50,move)
def arret():
    global flag
    flag=0
def demarre():
    global flag
    if flag==0:
        flag=1
        move()
fen=Tk()
can=Canvas(fen,height=200,width=600,bg='dark grey')
bou=Button(fen,text='avance',command=avance)
bou2=Button(fen,text='arret',command=arret)
bou3=Button(fen,text='démarre',command=demarre)
#can.pack()
#bou.pack()
#bou2.pack()
#bou3.pack()
can.grid(row=1,column=0,columnspan=3,padx=10,pady=10)
Label(fen,text='Choisir la fonction').grid(row=2,column=0)
sinus=Button(fen,text='sinus',command=fonction1)
expo=Button(fen,text='exponentielle',command=fonction2)
bou.grid(row=0,column=0)
bou2.grid(row=0,column=1)
bou3.grid(row=0,column=2)
sinus.grid(row=3,column=0,sticky=W)
expo.grid(row=3,column=0)
fen.mainloop()