GENS = 5 sidelength = 50 / 2**GENS t = ExtruderTurtle() t.name("hilbert.gcode") t.setup(x=100, y=100) t.set_density(0.05) t.rate(800) for g in range(GENS): new_instr = "" for r in instr: new_instr += sub_rules[r] instr = new_instr for l in range(10): for r in instr: if r == "F": t.forward(sidelength) elif r == "+": t.right(math.pi / 2) elif r == "-": t.left(math.pi / 2) t.lift(0.3) for r in reversed(instr): if r == "F": t.backward(sidelength) elif r == "+": t.left(math.pi / 2) elif r == "-": t.right(math.pi / 2) t.lift(0.3) t.finish()
t.rate(1000) t.set_density(0.05) ## Draw the base for l in range(3): length = (HAIR_ROWS + 1) * HAIR_SPACE while length > 0: t.left(math.pi / 2) t.forward(length) t.left(math.pi / 2) t.forward(length) length += -0.7 t.lift(0.2) while length < (HAIR_ROWS + 1) * HAIR_SPACE: length += 0.7 t.backward(length) t.right(math.pi / 2) t.backward(length) t.right(math.pi / 2) t.lift(0.2) t.lift(LIFT_DIST + 0.2) t.set_density(0.01) t.penup() hairs = HAIR_ROWS t.forward(-HAIR_SPACE / 2) t.left(math.pi / 2) t.forward(HAIR_SPACE / 2) while hairs > 0: for i in range(2): for r in range(hairs):