#--------------------------------------------------------------------- # Orologio con animazione scia in dissolvenza # By C.Fin 3/2010 - For Python2 #--------------------------------------------------------------------- import time, Tkinter, math, time #--------------------------------------------------------------------- LARGHEZZA, ALTEZZA = 400, 400 # dimensioni finestra XC, YC = LARGHEZZA/2, ALTEZZA/2 # centro finestra RAGGIO = LARGHEZZA / 2 * 0.85 # raggio effetto grafico PUNTI = 15 # numero punti sulla scia RP = 5 # raggio dei punti ang = 0 # angolo di partenza lp = [] # liste coordinate punti lp2 = [] FNT = ("Arial",50,"") # font per l'orologio #--------------------------------------------------------------------- def elabora(): global ang, lp, lp2 form1.after(50, elabora) rad = ang * math.pi / 180.0 x = XC + RAGGIO * math.cos(rad) y = YC + RAGGIO * math.sin(rad) lp.append([x, y]) if len(lp) > PUNTI: del lp[0] x = XC + RAGGIO * math.cos(rad+math.pi) y = YC + RAGGIO * math.sin(rad+math.pi) lp2.append([x, y]) if len(lp2) > PUNTI: del lp2[0] canvas1.delete("all") for i,p in enumerate(lp): x, y = p[0], p[1] c = "#0000%02X" % (float(i+1) / PUNTI * 255) canvas1.create_oval(x-RP, y-RP, x+RP, y+RP, fill=c) for i,p in enumerate(lp2): x, y = p[0], p[1] c = "#0000%02X" % (float(i+1) / PUNTI * 255) canvas1.create_oval(x-RP, y-RP, x+RP, y+RP, fill=c) ora = time.strftime("%H:%M:%S", time.localtime()) canvas1.create_text(XC, YC, text=ora, fill="green", font=FNT) ang += 6 if ang == 360: ang = 0 #-------------------------------------------------------------------- form1 = Tkinter.Tk() form1.overrideredirect(True) x = (form1.winfo_screenwidth() / 2) - (LARGHEZZA / 2) y = (form1.winfo_screenheight() / 2) - (ALTEZZA / 2) form1.geometry("%dx%d+%d+%d" % (LARGHEZZA, ALTEZZA, x, y)) canvas1 = Tkinter.Canvas(form1, width=LARGHEZZA, height=ALTEZZA, bg="black") canvas1.pack() form1.after(50, elabora) form1.mainloop()