import math
def draw_circle(x, y, r):
pass
def ar(cx, cy, x, y, a, b, r, k):
dx = max(abs(cx - x) - a/2, 0)
dy = max(abs(cy - y) - b/2, 0)
ef = 1 - max(dx/(a/2), dy/(b/2))
rc = math.sqrt((cx - x)**2 + (cy - y)**2)
R = math.sqrt((a/2)**2 + (b/2)**2)
cf = (1 - rc/R)**k if R > 0 else 1
return r * ef * cf
def cs(a, b, k):
dx = a / (2 * k)
dy = b / (math.sqrt(3) * k)
return min(dx, dy)
def hrect(cx, cy, a, b, r=10, k=2):
s = cs(a, b, k)
rows = int(b / (s * math.sqrt(3))) + 1
cols = int(a / s) + 1
for i in range(-rows, rows + 1):
for j in range(-cols, cols + 1):
x = cx + j * s
y = cy + i * s * math.sqrt(3)
if i % 2 != 0:
x += s / 2
cr = ar(cx, cy, x, y, a, b, r, k)
if abs(x - cx) <= a/2 + cr and abs(y - cy) <= b/2 + cr and cr > 0.1 * r:
draw_circle(x, y, cr)