1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| import numpy as np
import tkinter as Tk
import matplotlib
matplotlib.use('TkAgg')
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
from matplotlib.figure import Figure
Umax=1
omega=1
nb_val=1000
t=np.linspace(0,4*np.pi/omega,nb_val)
def carre(nb_harm):
tmp_carre=np.zeros(nb_val)
for n in range(0,nb_harm):
tmp_carre=tmp_carre+np.sin((2*n+1)*omega*t)/(2 *n +1)
scale_carre=[4*Umax/np.pi]*nb_val
tmp_carre=scale_carre*tmp_carre
return tmp_carre
def triangle(nb_harm):
tmp_triangle=np.zeros(nb_val)
for n in range(0,nb_harm):
tmp_triangle=tmp_triangle+np.cos((2*n+1)*omega*t)/((2 *n +1)*(2*n+1))
scale_triangle=[4*Umax/np.pi]*nb_val
tmp_triangle=scale_triangle*tmp_triangle
return tmp_triangle
root = Tk.Tk()
root.wm_title("Recomposition de Fourier")
f = Figure(figsize=(8,4), dpi=100)# a tk.DrawingArea
a = f.add_subplot(111)
def plot_carre(nb_harm):
a.plot(carre(nb_harm))
def plot_triangle(nb_harm):
a.plot(triangle(nb_harm))
def _quit():
root.quit()
root.destroy()
canvas = FigureCanvasTkAgg(f, master=root)
canvas.show()
canvas.get_tk_widget().pack(side=Tk.TOP, fill=Tk.BOTH, expand=1)
toolbar = NavigationToolbar2TkAgg(canvas, root)
toolbar.update()
canvas._tkcanvas.pack(side=Tk.TOP, fill=Tk.BOTH, expand=1)
n=2
button=Tk.Button(master=root,text='Carré',command=plot_carre(n))
button.pack(side=Tk.LEFT)
button=Tk.Button(master=root,text='Triangle',command=plot_triangle(n))
button.pack(side=Tk.LEFT)
button=Tk.Button(master=root, text='Quit',command=_quit)
button.pack(side=Tk.RIGHT)
Tk.mainloop() |
Partager