Advertisement
here2share

# Tk_spiral_gen.py

Aug 26th, 2020 (edited)
987
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.13 KB | None | 0 0
  1. # Tk_spiral_gen.py ZZZ so close...
  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 Spiral Generator.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(256)
  22. ttt = ttt[1:-1]+ttt[::-1]
  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. t = 400.0
  51. qqq = len(rrr)-1
  52. while 1:
  53.     for z in range(qqq):
  54.         rrr[z].sort()
  55.         L = len(rrr[z])
  56.         L2 = L/2
  57.         r2 = rrr[z][L2+1:]
  58.         rrr[z] = rrr[z][:L2+1]+r2[::-1]
  59.         L = t/L
  60.         for p,x,y in rrr[z]:
  61.             pix[x+y*hh] = ttt[int(b)%tL]
  62.             b += L
  63.     print t
  64.     t += 1
  65.     img.putdata(pix)
  66.     imgTk = ImageTk.PhotoImage(img)
  67.     canvas.create_image(1, 1, anchor=NW, image=imgTk)
  68.     root.update()
  69. 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement