import sys from ezgraphics import GraphicsWindow def circle(canvas, x, y, r): """Draw a filled circle with center (x, y) and radius r.""" canvas.drawOval(x - r, y - r, 2 * r, 2 * r) # Draw a Mickey fractal with n levels. # n=1 produces a circle, n=2 produces a familiar face. def mickeyFractal(canvas, x, y, r, n): # The largest circle has center (x, y) and radius r. circle(canvas, x, y, r) if n == 1: return mickeyFractal(canvas, x - r, y - r, r / 2, n - 1) mickeyFractal(canvas, x + r, y - r, r / 2, n - 1) def main(): UNIT = 32 win = GraphicsWindow(4 * UNIT, 4 + 3 * UNIT) canvas = win.canvas() canvas.setColor("cyan") canvas.setOutline("black") n = int(sys.argv[1]) mickeyFractal(canvas, 2 * UNIT, 2 * UNIT, UNIT, n) win.wait() main()