You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.8 KiB
56 lines
1.8 KiB
import tkinter as tk
|
|
|
|
# Fonction qui trace la droite y = ax + b sur le canvas
|
|
def trace():
|
|
a = int(entry_a.get()) # Récupère la valeur de a
|
|
b = int(entry_b.get()) # Récupère la valeur de b
|
|
|
|
canvas.delete("all") # Efface le contenu du canvas avant de redessiner
|
|
|
|
# Dessine l'axe des abscisses au milieu du canvas
|
|
canvas.create_line(0, 150, 400, 150, fill="black")
|
|
# Dessine l'axe des ordonnées au milieu du canvas
|
|
canvas.create_line(200, 0, 200, 300, fill="black")
|
|
|
|
# Définit deux points extrêmes pour tracer la droite
|
|
x1, y1 = -200, a * -200 + b
|
|
x2, y2 = 200, a * 200 + b
|
|
|
|
# Convertit les coordonnées mathématiques en pixels
|
|
y1_pixel = 150 - y1
|
|
y2_pixel = 150 - y2
|
|
|
|
# Dessine la droite en rouge
|
|
canvas.create_line(x1 + 200, y1_pixel, x2 + 200, y2_pixel, fill="red", width=2)
|
|
|
|
# Création de la fenêtre principale
|
|
root = tk.Tk()
|
|
root.title("Traceur de droite")
|
|
|
|
# Ajout d'un cadre pour organiser les éléments
|
|
top_frame = tk.Frame(root)
|
|
top_frame.pack(pady=10)
|
|
|
|
# Titre de l'application
|
|
tk.Label(top_frame, text="Traceur de droite : y = ax + b", font=("Arial", 14, "bold")).grid(row=0, column=0, columnspan=2, pady=5)
|
|
|
|
# Champ de saisie pour le coefficient a
|
|
tk.Label(top_frame, text="Coefficient a :").grid(row=1, column=0)
|
|
entry_a = tk.Entry(top_frame)
|
|
entry_a.grid(row=1, column=1)
|
|
|
|
# Champ de saisie pour le coefficient b
|
|
tk.Label(top_frame, text="Coefficient b :").grid(row=2, column=0)
|
|
entry_b = tk.Entry(top_frame)
|
|
entry_b.grid(row=2, column=1)
|
|
|
|
# Bouton pour tracer la droite
|
|
btn_trace = tk.Button(top_frame, text="Tracer la droite", command=trace)
|
|
btn_trace.grid(row=3, column=0, columnspan=2, pady=10)
|
|
|
|
# Zone de dessin pour afficher la droite
|
|
canvas = tk.Canvas(root, width=400, height=300, bg="white")
|
|
canvas.pack(pady=10)
|
|
|
|
# Lancement de la boucle principale
|
|
root.mainloop()
|