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 :

Exercice sur les rebonds avec python


Sujet :

Tkinter Python

  1. #1
    Membre régulier Avatar de SwyZe
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 9
    Par défaut Exercice sur les rebonds avec python
    Bonjour, j'ai un exercice à faire en Python, mais je n'y parviens pas...
    J'ai un carré inscrit dans un repère (O; i, j), représente sur la pièce jointe suivante :
    Nom : Capture d’écran 2017-11-22 à 19.30.04.png
Affichages : 1155
Taille : 311,0 Ko

    Je cherche donc à faire rebondir un point matériel dans ce carré. Le carré est néanmoins coupé par un segment [AB] (A(200;0) et B(300;300).
    J'ai donc trouvé l'équation de la droite (AB) qui est : y = 3*x + 600, mais je n'arrive pas à faire en sorte que le point rebondisse sur cette droite...

    Voici mon code python :

    ##############
    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
     
    import tkinter as tk
    import time
     
    largeurFenetre = 300
    hauteurFenetre = 300
    r = 2
     
    global x,y,vx,vy, can1
    x = largeurFenetre/2
    y = hauteurFenetre/2
    vx = -2
    vy = 3
     
     
    fen1 = tk.Tk()
    can1 = tk.Canvas(fen1, width =largeurFenetre, height = hauteurFenetre, bg ='brown')
    can1.pack()
    can1.create_line(200, 0, 300, 300)
     
    def bougeCible():
        global can1,x,y,vx,vy
        if (y <= 2 and x <= 200) or (y >= 298 and x <= 300):
            vy = -vy
        if x < 2 :
            vx = -vx
        if (x>= 200 and x<= 300) and (y <= 3*x + 600):
            aux = y
            y = -x
            x = -aux
     
     
        can1.create_oval(x-r, y-r, x+r, y+r, outline='brown', fill='brown')
        x=x+vx
        y=y+vy
        can1.create_oval(x-r, y-r, x+r, y+r, outline='black', fill='red')
        can1.after(2,bougeCible)
     
     
     
    bougeCible()
     
    fen1.mainloop()
    ##############


    Je débute sur Python et j'aimerai bien réussir à faire rebondir la balle (le point matériel), sur le segment [AB], comme j'arrive à le faire sur les autres côtés du carré...
    Merci de votre aide,
    Alexandre.

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 721
    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 721
    Par défaut
    Salut,

    Les questions 2, 3, 4 sont des questions de mathématique (ou de géométrie), si vous avez su y répondre, quelle difficulté avez-vous pour écrire le code correspondant à la dernière question?

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/12/2016, 15h01
  2. Besoin d'aide sur python, exercices sur les fichiers
    Par Mini-minimoys dans le forum Général Python
    Réponses: 6
    Dernier message: 21/11/2015, 18h37
  3. Réponses: 1
    Dernier message: 24/10/2011, 10h49
  4. Réponses: 3
    Dernier message: 22/12/2005, 00h40

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