Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import tkinter as tk
- w, h = 700, 400
- # n, k = map(int, input().split())
- def start():
- draw.delete('all')
- n = int(n_entry.get())
- k = int(k_entry.get())
- if k > (n-1)*n:
- draw.create_text(350, 200, text="impossible")
- return
- x, y = 0, 0
- r = n*2
- hit = 0
- for i in range(n):
- if hit + 2*i > k:
- break
- hit += 2*i
- diff = k - hit
- stopindex = i + ((n-1)*n == hit)
- xplus = r * 2 + 1 - diff
- def coords(x, y, rad):
- mag = w/n/15
- x, y = x+r, y+r
- x, y, rad = x*mag, y*mag, rad*mag
- return (x-rad, y-rad, x+rad, y+rad)
- for i in range(stopindex):
- print(x, y, r)
- draw.create_oval(coords(x, y, r))
- x += 2
- x += xplus - 2
- if stopindex != n:
- print(x, y, r)
- draw.create_oval(coords(x, y, r))
- x += r+2
- for _ in range(stopindex+1, n):
- print(x, y, 1)
- draw.create_oval(coords(x, y, 1))
- x += 3
- print()
- window = tk.Tk()
- n_entry = tk.Entry(window)
- n_entry.pack()
- k_entry = tk.Entry(window)
- k_entry.pack()
- start_button = tk.Button(window, text="Get it!", command=start)
- start_button.pack()
- draw = tk.Canvas(window, background='white', width=700, height=400)
- draw.pack()
- window.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment