Skip to content

Commit

Permalink
Merge pull request #9 from dastels/master
Browse files Browse the repository at this point in the history
Example additions and edits
  • Loading branch information
ladyada committed Jun 29, 2019
2 parents b217473 + 7f04ed1 commit bae9464
Show file tree
Hide file tree
Showing 11 changed files with 214 additions and 33 deletions.
2 changes: 1 addition & 1 deletion adafruit_turtle.py
Expand Up @@ -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
Expand Down
19 changes: 12 additions & 7 deletions examples/turtle_circle.py
Expand Up @@ -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
12 changes: 12 additions & 0 deletions 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
11 changes: 4 additions & 7 deletions 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)

Expand Down
44 changes: 44 additions & 0 deletions 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
36 changes: 36 additions & 0 deletions 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
20 changes: 20 additions & 0 deletions 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
43 changes: 43 additions & 0 deletions 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
37 changes: 37 additions & 0 deletions 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
21 changes: 4 additions & 17 deletions examples/turtle_square.py
Expand Up @@ -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
2 changes: 1 addition & 1 deletion examples/turtle_swirl.py
Expand Up @@ -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)
Expand Down

0 comments on commit bae9464

Please sign in to comment.