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 : 1169
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.