# 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()