IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tkinter Python Discussion :

Tracer une courbe avec tkinter


Sujet :

Tkinter Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2016
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Tracer une courbe avec tkinter
    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

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par fady-m Voir le message
    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.
    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
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2016
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Courbe sur tkinter python
    Citation Envoyé par wiztricks Voir le message
    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()

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    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
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2016
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    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

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par fady-m Voir le message
    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
    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
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Courbe avec TKinter (Python)
    Par Florian BERTOSSI dans le forum Tkinter
    Réponses: 4
    Dernier message: 21/05/2014, 18h40
  2. Problème de commandes sur Tkinter (Python)
    Par Inariuss dans le forum Général Python
    Réponses: 4
    Dernier message: 14/05/2014, 20h03
  3. Besoin d'aide urgente sur gentoo
    Par wyllos dans le forum OVH
    Réponses: 0
    Dernier message: 04/06/2008, 20h54
  4. [CGI] aide urgente sur script dans cgi
    Par angelino dans le forum Web
    Réponses: 1
    Dernier message: 12/04/2007, 09h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo