Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # tk_spiral_xmas_tree.py
- import tkinter as tk
- import random
- import math
- sz = 600
- root = tk.Tk()
- root.geometry(f'{sz}x{sz}+0+0')
- canvas = tk.Canvas(root, width=sz, height=sz, bg='black')
- canvas.pack()
- x0, y0 = sz/2, 80
- points = []
- for i in range(int(sz*0.78)):
- t = i / 5
- x = x0 + t * math.cos(t) * 2.5
- y = y0 - t * (math.sin(t) * 0.25 - 5)
- points.append((x, y))
- for i in range(1, len(points)):
- canvas.create_line(points[i-1][0], points[i-1][1], points[i][0], points[i][1], fill='#00ff37', width=1)
- y0 = 50
- star_points = []
- for i in range(5):
- angle = math.pi/2 + i * 4*math.pi/5
- outer_x = x0 + 40 * math.cos(angle)
- outer_y = y0 - 40 * math.sin(angle)
- inner_angle = angle + 2*math.pi/10
- inner_x = x0 + 16 * math.cos(inner_angle)
- inner_y = y0 - 16 * math.sin(inner_angle)
- star_points.extend([outer_x, outer_y, inner_x, inner_y])
- canvas.create_polygon(star_points, fill='yellow', outline='yellow')
- r = 7
- def on_click(event):
- x, y = event.x, event.y
- color = f'#{random.randint(0,255):02x}{random.randint(0,255):02x}{random.randint(0,255):02x}'
- canvas.create_oval(x-r, y-r, x+r, y+r, fill=color, outline=color)
- canvas.bind('<Button-1>', on_click)
- root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment