Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Tk_no_ones_sq_spiral_3.py
- from Tkinter import *
- from math import sqrt, atan2
- from random import shuffle as rs
- def oRGB(rgb): # pass
- r,g,b = rgb
- return "#%02x%02x%02x" % (r,g,b)
- ww = 600
- hh = 600
- root = Tk()
- root.title("# Tk_no_ones_sq_spiral_3")
- root.geometry("%dx%d+0+0"%(ww,hh))
- canvas = Canvas(root, width=ww, height=hh)
- canvas.grid()
- def switch(state):
- return {
- 0 : (x + stepSize, y),
- 1 : (x, y - stepSize),
- 2 : (x - stepSize, y),
- 3 : (x, y + stepSize),
- }[state]
- # set up spiral
- step = 1
- state = 0
- numSteps = 1
- turnCounter = 1
- stepSize = 5
- cols = ww / stepSize
- rows = hh / stepSize
- totalSteps = cols * rows
- x = ww / 2
- y = hh / 2
- xy = []
- while 1:
- xy.append((x,y))
- # Change state
- if step % numSteps == 0:
- state = (state + 1) % 4
- turnCounter += 1
- if turnCounter % 2 == 0:
- numSteps += 1
- step += 1
- x, y = switch(state)
- # Are we done?
- if step > totalSteps:
- break
- COLORS = 'red orange yellow green blue purple'.split()
- t = stepSize
- i = 12345
- iii = 0
- ttt = 0
- s = ''
- Lc = len(COLORS)
- while 1:
- canvas.delete('all')
- for x,y in xy:
- while 1:
- if len(s) < 100:
- s += str(i).replace('1','')
- i += 1
- if s:
- if ttt < 1:
- ttt = iii = int(s[:2])
- s = s[2:]
- color = int(iii)%Lc
- canvas.create_rectangle((x,y,x+t,y+t), fill=COLORS[color], outline='')
- break
- ttt -= 1
- canvas.update()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement