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

GUI Python Discussion :

Deplacement de Canvas sur Tkinter


Sujet :

GUI Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 2
    Points : 0
    Points
    0
    Par défaut Deplacement de Canvas sur Tkinter
    Bonjour,
    j'aimerai pour un projet faire afficher l'animation du déplacement d'un cercle sur ma fenêtre. Malheureusement, lorsque mon programme s'exécute, il n'affiche que la position finale du cercle et je n'arrive pas à comprendre pourquoi.(Le premier programme sert juste à récupérer les couples de coordonnées du cercle au cours du temps)
    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
     
    ##Programme
    compteurtrajectoire=0
     
    from tkinter import *    
    from math import *
    fenetre=Tk()
    fenetre.title("Terrain")
    Terrain=Canvas(fenetre,height=600,width=1000)
    Terrain.pack() #insertion du terrain dans la fenêtre
    Balle=Terrain.create_oval(0,0,40,40,fill='yellow')
    L1=[0,0]
    L2=[500,200]
     
     
    def coordonneesTrajectoire(L1,L2):#détermination des coordonnées de la balle lors de sont déplacement
        m=(L2[1]-L1[1])/(L2[0]-L1[0]) #coefficient directeur de la pente si les Y sont différents
        if L1[0]==L2[0]:
            L1[0]+=1
        if abs(m)<=1:
            X=[i for i in range(L1[0],L2[0])]
            Y=[floor(m*(x-L1[0])+L1[1]) for x in X]
        if abs(m)>1:
            Y=[i for i in range(L1[1],L2[1])]
            X=[floor((1/m)*(y-L1[1])+L1[0]) for y in Y]
        X=[0]+X
        Y=[0]+Y
     
     
        lancer(X,Y)
     
     
    def lancer(X,Y):
        global Balle
        global compteurtrajectoire
     
        if compteurtrajectoire<len(X)-1:
            dx=X[compteurtrajectoire+1]-X[compteurtrajectoire]
            dy=Y[compteurtrajectoire+1]-Y[compteurtrajectoire]
            Terrain.move(Balle,dx,dy)
            compteurtrajectoire+=1
            Terrain.after(100,lancer(X,Y))
     
     
    coordonneesTrajectoire(L1,L2) 
     
    fenetre.mainloop()

  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,

    Ligne 42: Terrain.after(100, lancer(X,Y)) s'écrit Terrain.after(100, lancer, X, Y).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 2
    Points : 0
    Points
    0
    Par défaut
    Ça marche, merci beaucoup wiztrick

Discussions similaires

  1. [Python 2.X] Comment afficher les données enregistrer du MySQL sur un canvas du Tkinter
    Par universjord dans le forum Interfaçage autre langage
    Réponses: 1
    Dernier message: 20/09/2018, 18h38
  2. Réponses: 16
    Dernier message: 05/04/2014, 20h06
  3. canvas sur shape et GroupBox
    Par matech dans le forum Composants VCL
    Réponses: 3
    Dernier message: 18/04/2006, 08h58
  4. deplacer la souris sur un element
    Par lacsap49 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 17/03/2006, 22h47
  5. Réponses: 4
    Dernier message: 18/06/2004, 16h58

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