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 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| # -*- coding:utf-8 -*-
from Tkinter import *
from random import randrange
import time
# ==============================================
# Espace et étoiles
# Codé sous Windows Xp avec Python 2.6.4.
# par C. Gigante : http://www.gigante.be/python/
# Janvier 2010
# ==============================================
class Etoile:
def __init__(self, dir, ray=1, x=0, y=0, dist=1):
self.x = x
self.y = y
self.dir = dir
self.rayon = ray
self.dist = dist
def donner_reference(self, refe):
# contient la référence du cercle tracé sur le canvas espace
self.ref = refe
class Application:
def __init__(self):
self.root=Tk()
self.root.title('Espace et étoiles')
self.la = 600
self.ha = 400
self.root.geometry(str(self.la)+"x"+str(self.ha))
self.nbreetoiles = 30
# nouvelles coordonnées du centre du canvas :
self.x0 = self.la/2
self.y0 = self.ha/2
self.but = Button(self.root, text="Redessiner", command=self.replacer_etoiles)
self.but.pack(side=BOTTOM)
self.espace = Canvas(self.root, bg="black", width=self.la, height=self.ha)
self.espace.pack(side=TOP, fill=BOTH, expand=YES)
self.lesetoiles = []
# création des étoiles :
for i in range(1,self.nbreetoiles):
xx, yy, direction, rayo = randrange(self.la), randrange(self.ha), randrange(360), randrange(10)
et = Etoile(direction,rayo,xx,yy,1)
ref_et = self.espace.create_oval(xx-rayo,yy-rayo,xx+rayo,yy+rayo,tag=str(i), fill="yellow")
et.donner_reference(ref_et)
self.lesetoiles.append(et)
self.root.mainloop()
def replacer_etoiles(self):
for i in range(1,self.nbreetoiles):
xx, yy, direction, rayo = randrange(self.la), randrange(self.ha), randrange(360), randrange(10)
self.espace.coords(str(i),xx-rayo,yy-rayo,xx+rayo,yy+rayo)
# départ du programme principal :
if __name__ == '__main__':
app = Application() |
Partager