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() |
Partager