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 :

Demande d'explications "Chute et rebond"


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 27
    Par défaut Demande d'explications "Chute et rebond"
    Bonjour,

    Je réalise un exercice qui consiste à simuler le mouvement d'une balle qui tombe et rebondit sur le sol avec une petite précision: Il s'agit de mouvements accélérés.

    Je ne comprends pas en fait le principe de la vitesse et du déplacement vertical si quelqu'un pourrait m'apporter quelques explications je lui en serait fort reconnaissant.

    Voici mon code que j'ai simplifié au possible pour ne mettre en exergue que ces principes de vitesse et de déplacement que je n'ai pas compris:

    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
    from tkinter import *
     
    def move():
        global x, y, flag, v, dv
     
    # Pas compris ce bloc d'instruction:
        v = v + dv
        y = y + v
     
    # Ca j'ai compris:
        if y > 190: 
            y = 190
            v = -v
     
        can.coords(ball, x-10, y-10, x+10, y+10)
     
        if flag > 0:
            fen.after(50, move)
     
    def start():
        global flag
        flag += 1
        if flag == 1:
            move()
    def stop():
        global flag
        flag = 0
     
    x, y = 20, 20
     
     # Pas compris, de plus quand dv = 10: la balle rebondit de moins
     # en moins haut pour ne plus rebondir du tout:
    v, dv = 1, 1
     
    flag = 0
     
    fen = Tk()
    fen.title("Animation avec Tkinter")
    can = Canvas(fen, bg= "white", width= 300, height= 200)
    can.grid(row= 0, column= 0)
    ball = can.create_oval(x-10, y-10, x+10, y+10, outline= "blue", fill= "light blue")
    bou1 = Button(fen, text= "Lâcher la Balle", command= start)
    bou1.grid(row= 1, column= 0)
    bou2 = Button(fen, text= "Arrêter la Balle", command= stop)
    bou2.grid(row= 3, column= 0)
    bou3 = Button(fen, text= "Quitter", command= fen.quit)
    bou3.grid(row= 4, column= 0)
    fen.mainloop()
    fen.destroy()
    Merci par avance de votre aide.

  2. #2
    Membre très actif
    Avatar de afranck64
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Par défaut
    Bonjour,
    alors en gros on a:
    - (x,y) le centre de la balle.
    - v la vitesse de la balle (verticale).
    - dv son accelaration (verticale).
    En theorie on a:
    - vitesse = vitesse + acceleration.
    - position = position + vitesse.

    dans ce cas le deplacement ce fait uniquement de haut en bas. d ou l absence de la vitesse pour x.
    # Pas compris, de plus quand dv = 10: la balle rebondit de moins
    # en moins haut pour ne plus rebondir du tout:
    Pas bien compris mais bon j ai pas pu tester le code.
    Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
    CONTENU D'UNE QUESTION
    Exemples:
    - Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
    - Code source du morceau de programme où il y a un bogue
    - Ligne de code sur laquelle le bogue apparaît
    - Erreur complète retournée pas l'interpréteur Python
    - Recherche déjà effectuée (FAQ, Tutoriels, ...)
    - Tests déjà effectués

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 27
    Par défaut
    Merci beaucoup pour votre réponse mais cela reste encore flou pour moi.

    Je capte pas mais je vais essayé de comprendre il n'y a pas de raison à moins que je sois idiot

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 068
    Par défaut
    lance une balle en l'air; elle monte, s'arrête, puis redescend ... Sa vitesse a diminuée jusqu'à devenir nulle puis la balle a accéléré dans l'autres sens.

    si la balle avance de 5 m/s et que la gravité la ramène vers le sol de 1 m/s, la balle va parcourir pour chaque seconde qui passe, 5m puis 4m puis 3m (en montant)... puis 0m (elle s'arrête et repart dans l'autre sens) ... -1m, -2m ... etc.

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 27
    Par défaut
    Merci à vous deux le flou se dissipe avec la dernière réponse, je vais m'exercer sur plusieurs cas de figures pour voir si j'ai bien compris.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#] demande d'explication sur un sample msdn
    Par legillou dans le forum Windows Forms
    Réponses: 2
    Dernier message: 27/06/2006, 17h01
  2. [final]demande d'explication sur ce mot-clé
    Par Invité dans le forum Langage
    Réponses: 10
    Dernier message: 18/04/2006, 11h32
  3. utilisation de code barre - demande d'explication
    Par cortex024 dans le forum Windows
    Réponses: 15
    Dernier message: 16/02/2006, 16h37
  4. Demande d'explication : "return false"
    Par mickeliette dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 04/10/2004, 10h06

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