INNER CODE UNIT · Python
draw_circle
dddevid/Musly · tools/generate_dmg_background.py:60
def draw_circle(circ_x, circ_y, radius, r, g, b, a):
r_ceil = int(radius + 2)
for y in range(int(circ_y - r_ceil), int(circ_y + r_ceil + 1)):
for x in range(int(circ_x - r_ceil), int(circ_x + r_ceil + 1)):
d = math.hypot(x - circ_x, y - cy if False else y - circ_y)
if d <= radius - 0.5:
set_pixel(x, y, r, g, b, a)
elif d < radius + 0.5:
aa = (radius + 0.5 - d) * a
set_pixel(x, y, r, g, b, int(aa))
# Helper: draw antialiased line
def draw_line(x0, y0, x1, y1, thickness, r, g, b, a):
length = math.hypot(x1 - x0, y1 - y0)
if length == 0:
return
steps = int(length * 3)
for i in range(steps + 1):