boris-vlasenko

Искры

Feb 21st, 2016
253
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.07 KB | None | 0 0
  1. from tkinter import *
  2. from random import randrange as rnd, random
  3. import time
  4.  
  5. root = Tk()
  6. root.geometry('800x600')
  7. canv = Canvas(bg='#ADC5E3')
  8. canv.pack(fill=BOTH,expand=1)
  9.  
  10. class Pixel():
  11.     def __init__(self,x,y,dx,dy,r,dr):
  12.         self.x = x
  13.         self.y = y
  14.         self.dx = dx
  15.         self.dy = dy
  16.         self.r = r
  17.         self.dr = dr
  18.         color = 'yellow'
  19.         self.id = canv.create_oval(x-r,y-r,x+r,y+r,fill=color,outline='')
  20.    
  21.     def move(self):
  22.         self.x += self.dx/2
  23.         self.y += self.dy/2
  24.         self.dx *= 0.99
  25.         self.dy *= 0.99
  26.         self.r -= self.dr
  27.         if self.r > 0:
  28.             canv.coords(self.id,self.x-self.r,self.y-self.r,self.x+self.r,self.y+self.r)
  29.             root.after(20,self.move)
  30.         else:
  31.             canv.delete(self.id)
  32.             if rnd(4) == 0:
  33.                 p = Pixel(self.x,self.y,rnd(-10,10),rnd(-10,10),random()*2,0.1+random())
  34.                 p.move()
  35.        
  36.  
  37. def newPixel():
  38.     p = Pixel(mx,my,rnd(-10,10),rnd(-10,10),rnd(5,9),0.1+random())
  39.     p.move()
  40.     root.after(10,newPixel)
  41.  
  42. def move(event):
  43.     global mx,my
  44.     mx,my = event.x,event.y
  45.    
  46. count = 0  
  47. mx = 400
  48. my = 300   
  49. canv.bind('<Motion>',move)
  50.  
  51. newPixel()
  52.  
  53.  
  54. mainloop()
Advertisement
Add Comment
Please, Sign In to add comment