10 BLOBRADIUS = WIDTH / 4.0
11 LINEWIDTH = WIDTH / 12.0
13 ENABLE_CROSSOVER = False
21 surface.write_to_png(n)
22 surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, WIDTH, WIDTH)
23 ctx = cairo.Context(surface)
24 ctx.set_line_width(LINEWIDTH)
26 # ctx.set_source_rgb(1,1,1)
28 # ctx.set_source_rgb(0,0,0)
32 if n & 1: ctx.line_to(MID, 0); ctx.stroke()
34 if n & 2: ctx.line_to(0, MID); ctx.stroke()
36 if n & 4: ctx.line_to(MID, WIDTH); ctx.stroke()
38 if n & 8: ctx.line_to(WIDTH, MID); ctx.stroke()
40 ctx.arc(MID, MID, BLOBRADIUS, 0, pi * 2)
42 ctx.set_source_rgb(1,1,1)
43 ctx.arc(MID, MID, BLOBRADIUS - LINEWIDTH, 0, pi * 2)
46 reset("blob_%d.png" % n)
51 if ENABLE_CROSSOVER and n & 2:
52 ctx.line_to(MID, MID - BLOBRADIUS - LINEWIDTH / 4)
54 ctx.move_to(MID, MID - LINEWIDTH / 4)
55 ctx.line_to(MID, WIDTH)
59 if ENABLE_CROSSOVER and n & 1:
60 ctx.line_to(MID - BLOBRADIUS + LINEWIDTH, MID)
61 ctx.curve_to(MID - BLOBRADIUS + LINEWIDTH, MID - BLOBRADIUS,
62 MID + BLOBRADIUS - LINEWIDTH, MID - BLOBRADIUS,
63 MID + BLOBRADIUS - LINEWIDTH, MID)
64 ctx.line_to(WIDTH, MID)
67 ctx.arc(0, WIDTH, WIDTH/2, pi / 2, 0)
70 ctx.arc(WIDTH, WIDTH, WIDTH/2, pi, 3 * pi / 2)
72 reset("stick_%d.png" % n)
84 ctx.move_to(WIDTH, MID)
85 ctx.line_to(MID, WIDTH)