Advertisement
here2share

# Tk_radial_gradients_spin3.py

Aug 27th, 2020
1,227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.18 KB | None | 0 0
  1. # Tk_radial_gradients_spin3.py
  2.  
  3. from Tkinter import *
  4. from PIL import Image, ImageTk
  5. import random
  6.  
  7. import math
  8.  
  9. ww = 512
  10. hh = 512
  11. ww2 = ww/2
  12. hh2 = hh/2
  13. root = Tk()
  14. root.title("Tk Radial Gradients Spin.py")
  15. root.geometry("%dx%d+0+0"%(ww,hh))
  16. canvas = Canvas(root, width=ww, height=hh)
  17. canvas.grid()
  18.  
  19. img = Image.new("RGB",(ww,hh))
  20.  
  21. ttt = range(255)
  22. ttt = [0]+ttt
  23. tL = len(ttt)
  24.  
  25. pix = []
  26. for y in range(hh):
  27.     for x in range(ww):
  28.         pix.append(0)
  29. 0
  30.  
  31. rrr = {}
  32. for y in range(hh):
  33.     for x in range(ww):
  34.         z = int((abs(ww2-x)**2+abs(hh2-y)**2)**0.5)
  35.         if x < ww2:
  36.             t = 0
  37.             if y > hh2:
  38.                 t = 2
  39.         else:
  40.             t = 1
  41.             if y > hh2:
  42.                 t = 3
  43.         try:
  44.             rrr[z] += [(t,x,y)]
  45.         except:
  46.             rrr[z] = [(t,x,y)]
  47. 0
  48.  
  49. b = 1
  50. qqq = len(rrr)-1
  51. spiral = 1
  52. while 1:
  53.     v = 512*b/360.0
  54.     for z in range(qqq):
  55.         rrr[z].sort()
  56.         L = len(rrr[z])
  57.         L2 = L/2
  58.         r2 = rrr[z][L2:]
  59.         rrr[z] = rrr[z][:L2]+r2[::-1]
  60.         for p,x,y in rrr[z]:
  61.             p = (math.degrees(math.atan2(256-x,256-y))+180)*v
  62.             pix[x+y*hh] = ttt[int(p+spiral)%tL]
  63.         spiral += b
  64.     print b
  65.     b += 1
  66.     img.putdata(pix)
  67.     imgTk = ImageTk.PhotoImage(img)
  68.     canvas.create_image(1, 1, anchor=NW, image=imgTk)
  69.     root.update()
  70. 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement