# See https://twitter.com/bicvudesign/status/950508015131734017
def circle(x, y, diameter):
radius = diameter / 2
oval(x - radius, y - radius, diameter, diameter)
def element(x, y, diameter, numCircles, relativeStrokeWidth):
step = diameter / numCircles
strokeWidth(relativeStrokeWidth * step)
for i in range(numCircles):
circle(x, y, diameter)
diameter -= step
diameter = 250
numCircles = 6
relativeStrokeWidth = 0.2
numRows = 13
numColumns = 5
stroke(0.7)
fill(1)
for j in range(numRows + 4):
y = 0.5 * diameter + 0.25 * diameter * (numRows - j)
xOffset = 0.5 * diameter * (j % 2)
for i in range(numColumns):
x = diameter * i + xOffset
element(x, y, diameter, numCircles, relativeStrokeWidth)