import tkinter as tk
from tkinter import ttk
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
# 다항식 그래프 그리기 함수
def draw_graph():
try:
coeffs = [float(entry.get()) for entry in entries]
x = np.linspace(-10, 10, 400)
y = np.polyval(coeffs, x)
# 기존 그래프 지우기
ax.clear()
ax.plot(x, y)
ax.set_title("Polynomial Graph")
ax.set_xlabel("x")
ax.set_ylabel("f(x)")
canvas.draw()
except ValueError:
result_label.config(text="Invalid input. Please enter valid numbers.")
# GUI 만들기
root = tk.Tk()
root.title("Polynomial Function Plotter")
# 다항식 계수 입력 UI
frame = ttk.Frame(root, padding="10")
frame.grid(row=0, column=0, padx=10, pady=10)
label = ttk.Label(frame, text="Enter polynomial coefficients (from highest degree):")
label.grid(row=0, column=0, columnspan=2)
entries = []
for i in range(5): # 다항식의 최대 차수를 4차로 설정
label = ttk.Label(frame, text=f"Coefficient for x^{4 - i}:")
label.grid(row=i + 1, column=0)
entry = ttk.Entry(frame)
entry.grid(row=i + 1, column=1)
entries.append(entry)
# 그래프 그리기 버튼
button = ttk.Button(frame, text="Plot Graph", command=draw_graph)
button.grid(row=6, column=0, columnspan=2)
# 결과 라벨
result_label = ttk.Label(frame, text="")
result_label.grid(row=7, column=0, columnspan=2)
# 그래프 표시 영역
fig, ax = plt.subplots(figsize=(5, 4))
canvas = FigureCanvasTkAgg(fig, master=root)
canvas.get_tk_widget().grid(row=1, column=0)
# 메인 루프 실행
root.mainloop()
'정보통신기술(ICT)' 카테고리의 다른 글
단위 계단 함수 (0) | 2024.09.27 |
---|---|
가우시안 델타 함수 (0) | 2024.09.26 |
부등식 함수 (0) | 2024.09.24 |
다차원 방정식 함수 (0) | 2024.09.23 |
역 함수 (0) | 2024.09.20 |