Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # tk_recaman.py
- from tkinter import *
- import math
- w = 1200
- h = 600
- span = 5
- root = Tk()
- root.geometry("+0+0")
- frame = Frame(root)
- frame.pack(fill=BOTH, expand=True)
- h_scroll = Scrollbar(frame, orient=HORIZONTAL)
- h_scroll.pack(side=BOTTOM, fill=X)
- c = Canvas(frame, width=w, height=h, xscrollcommand=h_scroll.set, bg='white')
- c.pack(side=LEFT, fill=BOTH, expand=True)
- h_scroll.config(command=c.xview)
- used = {0}
- current = 0
- n = 0
- y = h // 2
- cv_w = w
- def recaman():
- global n, current, cv_w
- prev = current
- candidate = current - n
- if candidate > 0 and candidate not in used:
- current = candidate
- else:
- current = current + n
- used.add(current)
- r = abs(current - prev) * 2.5
- x1 = min(prev, current) * span
- x2 = max(prev, current) * span
- s = 0
- if n % 2:
- s = 180
- c.create_arc(x1, y - r, x2, y + r, start=s, extent=180, style='arc')
- cv_w = max(cv_w, current * span)
- c.config(scrollregion=(0, 0, (cv_w), h))
- n += 1
- root.after(500, recaman)
- recaman()
- root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment