diff --git a/adafruit_turtle.py b/adafruit_turtle.py index 662fb20..085e49c 100644 --- a/adafruit_turtle.py +++ b/adafruit_turtle.py @@ -138,7 +138,7 @@ class turtle(object): def __init__(self, display=board.DISPLAY): self._logger = logging.getLogger("Turtle") - self._logger.setLevel(logging.DEBUG) + self._logger.setLevel(logging.INFO) self._display = display self._w = self._display.width self._h = self._display.height diff --git a/examples/turtle_circle.py b/examples/turtle_circle.py index 09ab899..a622a72 100644 --- a/examples/turtle_circle.py +++ b/examples/turtle_circle.py @@ -3,13 +3,18 @@ turtle = turtle(board.DISPLAY) -turtle.pencolor(Color.WHITE) - +mycolors = [Color.WHITE, Color.RED, Color.BLUE, Color.GREEN, Color.ORANGE, Color.PURPLE] +turtle.penup() +turtle.forward(130) +turtle.right(180) turtle.pendown() -turtle.circle(20) -turtle.forward(20) -turtle.circle(20, extent=180) -turtle.forward(50) -turtle.circle(50, steps=6) + +for i in range(6): + turtle.pencolor(mycolors[i]) + turtle.circle(25) + turtle.penup() + turtle.forward(50) + turtle.pendown() + while True: pass diff --git a/examples/turtle_circle_hex.py b/examples/turtle_circle_hex.py new file mode 100644 index 0000000..4b17395 --- /dev/null +++ b/examples/turtle_circle_hex.py @@ -0,0 +1,12 @@ +import board +from adafruit_turtle import turtle + +turtle = turtle(board.DISPLAY) +turtle.pendown() + +for _ in range(32): + turtle.circle(50, steps=6) + turtle.right(11.1111) + +while True: + pass diff --git a/examples/turtle_dots.py b/examples/turtle_dots.py index 0e1c0f1..2d6e069 100644 --- a/examples/turtle_dots.py +++ b/examples/turtle_dots.py @@ -1,16 +1,13 @@ import board -from adafruit_turtle import turtle, Color - -turtle = turtle(board.DISPLAY) -size = min(board.DISPLAY.width, board.DISPLAY.height) * 0.5 - -print("Turtle time! Lets draw a rainbow benzene") +from adafruit_turtle import turtle +print("Turtle time! Lets draw a square with dots") +turtle = turtle(board.DISPLAY) turtle.pendown() for _ in range(4): - turtle.dot(8, Color.RED) + turtle.dot(8) turtle.left(90) turtle.forward(25) diff --git a/examples/turtle_hilbert.py b/examples/turtle_hilbert.py new file mode 100644 index 0000000..c39d58a --- /dev/null +++ b/examples/turtle_hilbert.py @@ -0,0 +1,44 @@ +import board +from adafruit_turtle import turtle + +def hilbert2(step, rule, angle, depth, t): + if depth > 0: + a = lambda: hilbert2(step, "a", angle, depth - 1, t) + b = lambda: hilbert2(step, "b", angle, depth - 1, t) + left = lambda: t.left(angle) + right = lambda: t.right(angle) + forward = lambda: t.forward(step) + if rule == "a": + left() + b() + forward() + right() + a() + forward() + a() + right() + forward() + b() + left() + if rule == "b": + right() + a() + forward() + left() + b() + forward() + b() + left() + forward() + a() + right() + +turtle = turtle(board.DISPLAY) +turtle.penup() + +turtle.goto(-80, -80) +turtle.pendown() +hilbert2(5, "a", 90, 5, turtle) + +while True: + pass diff --git a/examples/turtle_koch.py b/examples/turtle_koch.py new file mode 100644 index 0000000..936b97b --- /dev/null +++ b/examples/turtle_koch.py @@ -0,0 +1,36 @@ +import board +from adafruit_turtle import turtle + +def f(side_length, depth, generation): + if depth == 0: + side = turtle.forward(side_length) + else: + side = lambda: f(side_length / 3, depth - 1, generation + 1) + side() + turtle.left(60) + side() + turtle.right(120) + side() + turtle.left(60) + side() + +turtle = turtle(board.DISPLAY) + +unit = min(board.DISPLAY.width / 3, board.DISPLAY.height / 4) +top_len = unit * 3 +print(top_len) +turtle.penup() +turtle.goto(-1.5 * unit, unit) +turtle.pendown() + +num_generations = 3 +top_side = lambda: f(top_len, num_generations, 0) + +top_side() +turtle.right(120) +top_side() +turtle.right(120) +top_side() + +while True: + pass diff --git a/examples/turtle_manual_hex.py b/examples/turtle_manual_hex.py new file mode 100644 index 0000000..45fe38d --- /dev/null +++ b/examples/turtle_manual_hex.py @@ -0,0 +1,20 @@ +import board +from adafruit_turtle import turtle + +turtle = turtle(board.DISPLAY) + + +# turtle.penup() +# turtle.right(45) +# turtle.forward(90) +# turtle.right(75) + +turtle.pendown() +for _ in range(21): + for _ in range(6): + turtle.forward(50) + turtle.right(61) + turtle.right(11.1111) + +while True: + pass diff --git a/examples/turtle_overlayed_koch.py b/examples/turtle_overlayed_koch.py new file mode 100644 index 0000000..440f641 --- /dev/null +++ b/examples/turtle_overlayed_koch.py @@ -0,0 +1,43 @@ +import board +from adafruit_turtle import turtle, Color + +generation_colors = [Color.RED, Color.BLUE, Color.GREEN] + +def f(side_length, depth, generation): + if depth == 0: + side = turtle.forward(side_length) + else: + side = lambda: f(side_length / 3, depth - 1, generation + 1) + side() + turtle.left(60) + side() + turtle.right(120) + side() + turtle.left(60) + side() + +def snowflake(num_generations, generation_color): + top_side = lambda: f(top_len, num_generations, 0) + turtle.pencolor(generation_color) + top_side() + turtle.right(120) + top_side() + turtle.right(120) + top_side() + + +turtle = turtle(board.DISPLAY) + +unit= min(board.DISPLAY.width / 3, board.DISPLAY.height / 4) +top_len = unit * 3 +print(top_len) +turtle.penup() +turtle.goto(-1.5 * unit, unit) +turtle.pendown() + +for generations in range(3): + snowflake(generations, generation_colors[generations]) + turtle.right(120) + +while True: + pass diff --git a/examples/turtle_sierpinski.py b/examples/turtle_sierpinski.py new file mode 100644 index 0000000..1cc640e --- /dev/null +++ b/examples/turtle_sierpinski.py @@ -0,0 +1,37 @@ +import board +from adafruit_turtle import turtle + +def getMid(p1, p2): + return ((p1[0] + p2[0]) / 2, (p1[1] + p2[1]) / 2) #find midpoint + +def triangle(points, depth): + + turtle.penup() + turtle.goto(points[0][0], points[0][1]) + turtle.pendown() + turtle.goto(points[1][0], points[1][1]) + turtle.goto(points[2][0], points[2][1]) + turtle.goto(points[0][0], points[0][1]) + + if depth > 0: + triangle([points[0], + getMid(points[0], points[1]), + getMid(points[0], points[2])], + depth-1) + triangle([points[1], + getMid(points[0], points[1]), + getMid(points[1], points[2])], + depth-1) + triangle([points[2], + getMid(points[2], points[1]), + getMid(points[0], points[2])], + depth-1) + +turtle = turtle(board.DISPLAY) +big = min(board.DISPLAY.width / 2, board.DISPLAY.height / 2) +little = big / 1.4 +seed_points = [[-big, -little], [0, big], [big, -little]] #size of triangle +triangle(seed_points, 4) + +while True: + pass diff --git a/examples/turtle_square.py b/examples/turtle_square.py index 3edc8f6..eb585a3 100644 --- a/examples/turtle_square.py +++ b/examples/turtle_square.py @@ -5,24 +5,11 @@ print("Turtle time! Lets draw a simple square") turtle.pencolor(Color.WHITE) -print("Position:", turtle.pos()) -print("Heading:", turtle.heading()) - -turtle.penup() -print("Pen down?", turtle.isdown()) turtle.pendown() -print("Pen down?", turtle.isdown()) -turtle.forward(25) -print("Position:", turtle.pos()) -turtle.left(90) -turtle.forward(25) -print("Position:", turtle.pos()) -turtle.left(90) -turtle.forward(25) -print("Position:", turtle.pos()) -turtle.left(90) -turtle.forward(25) -print("Position:", turtle.pos()) + +for _ in range(4): + turtle.forward(25) + turtle.left(90) while True: pass diff --git a/examples/turtle_swirl.py b/examples/turtle_swirl.py index d7664af..58c7f9e 100644 --- a/examples/turtle_swirl.py +++ b/examples/turtle_swirl.py @@ -8,7 +8,7 @@ colors = [Color.ORANGE, Color.PURPLE] -for x in range(300): +for x in range(400): turtle.pencolor(colors[x % 2]) turtle.forward(x) turtle.left(91)