summaryrefslogtreecommitdiff
path: root/python-graphics/main.py
diff options
context:
space:
mode:
Diffstat (limited to 'python-graphics/main.py')
-rw-r--r--python-graphics/main.py24
1 files changed, 21 insertions, 3 deletions
diff --git a/python-graphics/main.py b/python-graphics/main.py
index fabdd92..177bf3f 100644
--- a/python-graphics/main.py
+++ b/python-graphics/main.py
@@ -2,7 +2,10 @@ import tkinter as tk
from tkinter import filedialog as fd
from tkinter import ttk
-from plotter import plot_preset, plot_points
+from plotter import plot_preset, plot_points, plot_user
+
+from sympy.parsing.sympy_parser import parse_expr
+from sympy.plotting import plot
class PlotType:
@@ -193,13 +196,26 @@ class UserPlotFrame(tk.Frame):
self.create_widgets()
def create_widgets(self):
- pass
+ self.label = tk.Label(self)
+ self.label["text"] = "Введите выражение:"
+ self.label.grid(row=0, column=0, rowspan=1, columnspan=1, sticky=tk.W)
+
+ self.text = tk.Entry(self)
+ self.text.grid(row=1, column=0, sticky=tk.NSEW)
def show(self):
self.grid(row=0, column=0, columnspan=1, rowspan=2, sticky=tk.NSEW)
+ grid_conf(self, 2, 1)
def collect_info(self):
- return {"status": "ok", "graph": "user"}
+ expr_text = self.text.get()
+ try:
+ expr = parse_expr(expr_text)
+ plot(expr, show=False)
+ except:
+ return {"status": "error", "message": "Не удалось обработать выражение"}
+
+ return {"status": "ok", "graph": "user", "expr": expr}
class PointPlotFrame(tk.Frame):
@@ -349,6 +365,8 @@ class App(tk.Frame):
plot_preset(info)
elif info["graph"] == "point":
plot_points(info)
+ elif info["graph"] == "user":
+ plot_user(info)
else:
print(info)