# tk_concentric_circles_of_dots.py import tkinter as tk import math, random root = tk.Tk() root.geometry("600x600+0+0") canvas = tk.Canvas(root, width=600, height=600, bg="white") canvas.pack() center_x = 300 center_y = 300 dot_radius = 3 spacing = 27 canvas.create_oval(center_x - dot_radius, center_y - dot_radius, center_x + dot_radius, center_y + dot_radius, fill="black") max_radius = 420 r = spacing while r <= max_radius: circumference = 2 * math.pi * r num_dots = max(6, int(circumference / spacing)) for i in range(num_dots): angle = 2 * math.pi * i / num_dots x = center_x + r * math.cos(angle) + random.randint(-5, 5) y = center_y + r * math.sin(angle) + random.randint(-5, 5) canvas.create_oval(x - dot_radius, y - dot_radius, x + dot_radius, y + dot_radius, fill="black") r += spacing root.mainloop()