Untitled
unknown
plain_text
2 years ago
2.3 kB
2
Indexable
Never
from matplotlib.backends.backend_tkagg import ( FigureCanvasTkAgg, NavigationToolbar2Tk ) from matplotlib.figure import Figure from scipy.integrate import solve_ivp import numpy as np import matplotlib.pyplot as plt from matplotlib.pyplot import figure from matplotlib.widgets import TextBox from matplotlib.widgets import Button import tkinter as tk import matplotlib import random matplotlib.use('TkAgg') app = tk.Tk() x0 = 3 y0 = 3 z0 = 2 vx0 = -1 vy0 = 5 vz0 = 0 t0 = 0 tf = 2 m = np.array([1, 0, 0]) r = np.array([3, 3, 2]) Q = 1 a = 1 class Sim: def mag_bewegung(t, D, m, Q, r, a): x, vx, y, vy, z, vz = D v = np.array([vx, vy, vz]) o = np.array([x, y, z]) ra = o - r rar = np.sqrt(sum(ra*ra)) B = (3 * (np.dot(m, (ra)/rar))*((ra)/rar)-m)/rar*rar*rar s = (Q*np.cross(v, B))/a sx = s[0] sy = s[1] sz = s[2] fun = [vx, sx, vy, sy, vz, sz] return fun def plotme(mag_bewegung): D0 = [x0 *random.randint(1,2), y0, z0, vx0, vy0, vz0] NumSol = solve_ivp(mag_bewegung, [t0, tf], D0, method="RK45", args=( m, Q, r, a), atol=1e-8, rtol=1e-8) aa, bb, cc, dd, ee, ff = NumSol.y t = NumSol.t ax = plt.figure().add_subplot(projection='3d') # create the barchart ax.plot(aa, bb, cc) ax.set_xlabel('X-Koordinate') ax.set_ylabel('Y-Koordinate') ax.set_zlabel('Z-Koordinate') print("huhuhu") plotme(mag_bewegung) def updatePlot(): Sim.plotme(Sim.mag_bewegung) app.update() print("huhu") class App(tk.Tk): def __init__(self): super().__init__() self.title('Tkinter Matplotlib Demo') # create a figure figure = Figure(figsize=(6, 4), dpi=100) # create FigureCanvasTkAgg object figure_canvas = FigureCanvasTkAgg(figure, self) # create the toolbar NavigationToolbar2Tk(figure_canvas, self) figure_canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH, expand=1) MagnetX = tk.Entry() MagnetX.pack() Startknopf = tk.Button(text="Start", command=updatePlot()) Startknopf.pack() app.mainloop()