-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
83 lines (67 loc) · 2.2 KB
/
main.py
File metadata and controls
83 lines (67 loc) · 2.2 KB
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# imoprts
import tkinter as tk
from tkinter import ttk
import sympy as sp
from sympy import *
import math
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
import Limes
# funktion plotten
def plot(expr, x_range=(-10, 10), num_points=400):
x = symbols('x')
f = sp.lambdify(x, expr, 'numpy')
x_v = np.linspace(x_range[0], x_range[1], num_points)
y_v = f(x_v)
figure = plt.figure(figsize=(6, 4))
plot = figure.add_subplot(1, 1, 1)
plot.clear()
plot.plot(x_v, y_v,color='blue')
plot.grid(True)
plot.axhline(0, color='black',linewidth=0.5)
plot.axvline(0, color='black', linewidth=0.5)
return figure
def calc():
expr = sp.sympify(formel.get())
gegen = Limes.filter(geg.get())
s_grenz = str(seite.get())
if gegen == -math.inf:
loesung.config(text="Der Grenzwert von {} fuer x gegen {} ist: -{}".format(expr, gegen, Limes.limes(Limes.func_return, gegen, s_grenz, expr)))
else:
loesung.config(text="Der Grenzwert von {} fuer x gegen {} ist: {}".format(expr, gegen, Limes.limes(Limes.func_return, gegen,s_grenz,expr)))
#plot
figure = plot(expr)
canvas = FigureCanvasTkAgg(figure, master=root)
canvas.draw()
canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH, expand=1)
root = tk.Tk()
# Mod for the window
root.title("Limes Rechner")
root.geometry("800x800")
#label1
label1 = ttk.Label(root, text="Bitte geben sie ihre formel f(x) an: f(x) =")
label1.pack()
# Entry fuer die forme
formel = ttk.Entry(root)
formel.pack()
formel.insert(0, "Bsp. 3*x^2")
# Label1
label2 = ttk.Label(root, text="Bitte geben sie den wert an gegen den die funktion laufen soll (-inf = -unendlich, inf = unendlich)")
label2.pack()
# Entry fuer gegen welchen wert die funktion laufen soll
geg = ttk.Entry(root)
geg.pack()
# label3
label3 = ttk.Label(root, text="geben sie die seite an von der der Grenzwert Berechnet werden soll (beide, rechts, links): ")
label3.pack()
# Entry fuer die seite
seite = ttk.Entry(root)
seite.pack()
# Button zum Berechen
btn_fomel = ttk.Button(root, text="submit", command=calc)
btn_fomel.pack()
# label solution
loesung = ttk.Label(root, text="")
loesung.pack()
root.mainloop()