Bonjour,
Je suis nouveau sur ce forum et j'ai des difficultés à tracer une fonction dans un canvas sur tkinter. Je serai reconnaissant si vous pouvez m'aider.
merci à vous
Bonjour,
Je suis nouveau sur ce forum et j'ai des difficultés à tracer une fonction dans un canvas sur tkinter. Je serai reconnaissant si vous pouvez m'aider.
merci à vous
Salut,
Pour afficher le graphe d'une fonction, matplotlib est plus approprié... maintenant si c'est dans le cadre d'un exercice, vous aurez peu d'aide sans poster un minimum de code qui permette de voir un peu votre niveau (histoire qu'on essaie de se mettre à votre place) et si vous avez pris le temps de lire la documentation.
- W
Je travaille sur une interface graphique qui résout un système d'équation et affiche une courbe qui a une forme parabolique.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166 #! /usr/bin/env python # -*- coding: utf-8 -*- from Tkinter import * from math import * from tkMessageBox import askokcancel def calculer(): # entree des coefficients RTA , %RTA, qv , qt , a RTA,Pr,qv,qt,a = float(entr4.get()),float(entr3.get()),float(entr2.get()),float(entr1.get()),float(entr0.get()) # Calcul des parametres : H=(RTA*Pr)/100 qr=sqrt(((qv**2)+(qt**2))) fn=((a**2)*qr)/(8*H) Sn=a+(((a**3)*(qr**2))/(24*H*H)) txt0.configure(text = "" + str(RTA)) txt1.configure(text = "" + str(Pr)) txt2.configure(text = "" + str(qv)) txt3.configure(text = "" + str(qt)) txt4.configure(text = "" + str(a)) text_x1.configure(text = "" + str(H)) text_x2.configure(text = "" + str(qr)) text_x3.configure(text = "" + str(fn)) text_x4.configure(text = "" + str(Sn)) def presentation(): "Fenetre-message contenant la description sommaire de la methode de calcul" msg =Toplevel() Message(msg, bg ="dark green", fg ="white", width =810,font ="Arial 9", text =''' Methode de calcul\n La methode choisie est assez originale, ''').pack(padx =10, pady =10) #_________________________________________________________________________________________________________________________________________________________________________ def processus(): "Fenetre-message contenant la description du processus" msg =Toplevel() Message(msg, bg ="dark green", fg ="white", width =500,font ="Arial 9", text='''PROCESSUS a suivre\n 1. Entrer les valeurs de la résistance à la traction assignée , le pourcentage de la tension, la charge verticale est horizontale et la portée. 2. Cliquer sur le bouton < Resoudre ! > : 3. Les outputs sont la flèche, la tension, la charge résultante et la longueur totale du câble : 5. Cliquer sur < Quitter !> pour abandonner \n''').pack(padx =10, pady =10) #_________________________________________________________________________________________________________________________________________________________________________ def aPropos(): "Fenetre-message indiquant les versions utilisees" msg =Toplevel() Message(msg, width =200, aspect =100, justify =CENTER, text ='''Sag and tension in overhead conductors UdeS, Mai 2016 Python version 2.7 Tk version 8.4''').pack(padx =10, pady =10) #_________________________________________________________________________________________________________________________________________________________________________ def quitter(): " pour quitter l'application " ans=askokcancel('Sag and tension in overhead conductors',"Do you want to quit ?") if ans:root.quit() #_________________________________________________________________________________________________________________________________________________________________________ def makemenu(win): "barre de menu" top=Menu(win) win.config(menu=top) R=Menu(top) top.add_cascade(label='Presentation',menu=R,underline=0) R.add_command(label='Methode de calcul',command=presentation,underline=0) R.add_command(label='Processus',command=processus,underline=0) R.add_command(label='A propos',command=aPropos,underline=0) Q=Menu(top) top.add_cascade(label='Quitter !',menu=Q,underline=0) Q.add_command(label='Quitter !!',command=quitter,underline=0) QQ=Menu(top) top.add_cascade(label='play !',menu=QQ,underline=0) QQ.add_command(label='Load',command=quitter,underline=0) QQ.add_command(label='Span',command=Image,underline=0) #_________________________________________________________________________________________________________________________________________________________________________ #Programme Principal root = Tk() root.title("Sag and tension in overhead conductors") root.geometry('1000x1000') L=500 R=8 makemenu(root) #_________________________________________________________________________________________________________________________________________________________________________ can=Canvas(root,bg='White',height=L,width=L) can.grid(row=10,column=0) can.create_line(0,L/2,L,L/2,fill='black') can.create_line(L/2,0,L/2,L,fill='black') (Label(root, text = "Sag and tension in overhead conductors")).grid(row=0, column=0) #Entrees entr4 = Entry(root) entr4.grid(row=1, column =1) entr3 = Entry(root) entr3.grid(row=2, column =1) entr2 = Entry(root) entr2.grid(row=3, column =1) entr1 = Entry(root) entr1.grid(row=4, column =1) entr0 = Entry(root) entr0.grid(row=5, column =1) (Label(root, text = "Saisir la RTA =")).grid(row=1, column=0,sticky=E) txt0 = Label(root) (Label(root, text = "Saisir la %RTA =")).grid(row=2, column=0,sticky=E) txt1 = Label(root) (Label(root, text = "Saisir la charge verticale qv =")).grid(row=3, column=0,sticky=E) txt2 = Label(root) (Label(root, text = "Saisir la charge transversale qt =")).grid(row=4, column=0,sticky=E) txt3 = Label(root) (Label(root, text = "Saisir la portee a =")).grid(row=5, column=0,sticky=E) txt4 = Label(root) #Output and results display (Label(root, text = "La tension horizontale H =")).grid(row=6, column=0,sticky=E) text_x1 = Label(root) text_x1.grid(row=6, column =1) (Label(root, text = "La charge resultante Qr =")).grid(row=7, column=0,sticky=E) text_x2 = Label(root) text_x2.grid(row=7, column =1) (Label(root, text = "La fleche F=")).grid(row=8, column=0,sticky=E) text_x3 = Label(root) text_x3.grid(row=8, column =1) (Label(root, text = "La longueur totale du cable L =")).grid(row=9, column=0,sticky=E) text_x4 = Label(root) text_x4.grid(row=9, column =1) can.create_text(L-30,L/2-10,text='axe x',fill="green") can.create_text(L/2+40,10,text='axe y',fill="green") can.create_text(L-10,L/2+10,text='5',fill="green") can.create_text(10,L/2+10,text='-5',fill="green") can.create_text(L/2-10,L/2+10,text='0',fill="green") can.create_text(L/2-10,10,text='5',fill="green") can.create_text(L/2-10,L-10,text='-5',fill="green") txt_x1=can.create_text(-10,0,text='x1',fill="yellow") txt_x2=can.create_text(-10,0,text='x2',fill="yellow") txt_x3=can.create_text(-10,0,text='x3',fill="yellow") txt_x4=can.create_text(-10,0,text='x4',fill="yellow") # creation d'un widget 'Canvas' contenant une image bitmap : #can2 = Canvas(root, width =500, height =500, bg ='white') #photo = PhotoImage(file ='pic.gif') #can2.create_image(200,200, image =photo) #can2.grid(row =10, column =1, rowspan =6, padx =10, pady =5) button = Button(root, text='Resoudre', command =calculer) button.grid(row=6, column =0) root.mainloop() root.destroy()
Salut,
Le code dont je parlais n'était pas tout votre programme mais un minimum illustrant le problème rencontré lorsque vous essayez de faire "je ne sais quoi" à préciser.
note: avant de poster vous êtes supposé avoir lu les règles décrites ici. Elles n'ont pas changé depuis 10 ans.
- W
Je veux tracer une fonction de la forme ax^2+bx+c entre -10 et 10. Je veux afficher la figure dans un canvas dans mon interface graphique tkinter. Je pense que le problème est claire. Pouvez vous m'aider! Je suis débutant sur python
Salut,
Là tout de suite j'ai autre chose sur le feu surtout que "je veux" ne décrit pas le problème que vous rencontrez.
Par contre, vous pourriez vous inspirer de l'exemple donné dans le Swinnen: il fait cela avec une fonction sinus.
- W
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager