import tkinter as tk
from tkinter import messagebox
import numpy as np
import matplotlib.pyplot as plt
from math import sqrt
# 그래프를 그리는 함수
def plot_graph(a_value):
try:
# 입력값을 float로 변환
a = float(a_value)
# x 범위 설정 (a보다 크거나 같은 값만 설정)
x = np.linspace(a, a + 100, 400)
y = np.sqrt(x - a)
# 그래프 그리기
plt.figure()
plt.plot(x, y, label=f"f(x) = sqrt(x - {a})")
plt.title(f"무리 함수: f(x) = sqrt(x - {a})")
plt.xlabel('x')
plt.ylabel('f(x)')
plt.legend()
plt.grid(True)
plt.show()
except ValueError:
messagebox.showerror("입력 오류", "a 값은 숫자로 입력해 주세요.")
except Exception as e:
messagebox.showerror("오류", str(e))
# GUI 설정
def create_gui():
root = tk.Tk()
root.title("무리 함수 그래프 그리기")
# 설명 레이블
label = tk.Label(root, text="무리 함수 f(x) = sqrt(x - a)의 a 값을 입력하세요:")
label.pack(padx=20, pady=10)
# 입력 필드
entry = tk.Entry(root)
entry.pack(padx=20, pady=10)
# 그래프 그리기 버튼
plot_button = tk.Button(root, text="그래프 그리기", command=lambda: plot_graph(entry.get()))
plot_button.pack(pady=10)
# 종료 버튼
close_button = tk.Button(root, text="종료", command=root.quit)
close_button.pack(pady=10)
root.mainloop()
# GUI 실행
create_gui()