Skip to content

Commit d4f7b07

Browse files
authored
Merge pull request #917 from jedgarpark/tft-gizmo-turtle-graphics
Turtle example scripts first commit
2 parents 1ffa172 + 54ece56 commit d4f7b07

12 files changed

+457
-0
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#Turtle Gizmo Asterix
2+
#==| Turtle Gizmo Setup start |========================================
3+
import board
4+
import busio
5+
import displayio
6+
from adafruit_st7789 import ST7789
7+
from adafruit_turtle import turtle
8+
displayio.release_displays()
9+
spi = busio.SPI(board.SCL, MOSI=board.SDA)
10+
display_bus = displayio.FourWire(spi, command=board.TX, chip_select=board.RX)
11+
display = ST7789(display_bus, width=240, height=240, rowstart=80,
12+
backlight_pin=board.A3, rotation=180)
13+
turtle = turtle(display)
14+
#==| Turtle Gizmo Setup end |=========================================
15+
16+
turtle.pendown()
17+
for _ in range(20):
18+
turtle.forward(80)
19+
turtle.back(80) #try changing this to 70 for an iris effect
20+
turtle.left(18)
21+
22+
while True:
23+
pass
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Turtle Gizmo Rainbow Benzene
2+
#==| Turtle Gizmo Setup start |========================================
3+
import board
4+
import busio
5+
import displayio
6+
from adafruit_st7789 import ST7789
7+
from adafruit_turtle import Color, turtle
8+
displayio.release_displays()
9+
spi = busio.SPI(board.SCL, MOSI=board.SDA)
10+
display_bus = displayio.FourWire(spi, command=board.TX, chip_select=board.RX)
11+
display = ST7789(display_bus, width=240, height=240, rowstart=80,
12+
backlight_pin=board.A3, rotation=180)
13+
turtle = turtle(display)
14+
#==| Turtle Gizmo Setup end |=========================================
15+
16+
benzsize = min(display.width, display.height) * 0.5
17+
18+
print("Turtle time! Lets draw a rainbow benzene")
19+
20+
colors = (Color.RED, Color.ORANGE, Color.YELLOW, Color.GREEN, Color.BLUE, Color.PURPLE)
21+
22+
turtle.pendown()
23+
start = turtle.pos()
24+
25+
for x in range(benzsize):
26+
turtle.pencolor(colors[x%6])
27+
turtle.forward(x)
28+
turtle.left(59)
29+
30+
while True:
31+
pass
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# Turtle Gizmo Christmas Tree
2+
#==| Turtle Gizmo Setup start |========================================
3+
import board
4+
import busio
5+
import displayio
6+
from adafruit_st7789 import ST7789
7+
from adafruit_turtle import Color, turtle
8+
displayio.release_displays()
9+
spi = busio.SPI(board.SCL, MOSI=board.SDA)
10+
display_bus = displayio.FourWire(spi, command=board.TX, chip_select=board.RX)
11+
display = ST7789(display_bus, width=240, height=240, rowstart=80,
12+
backlight_pin=board.A3, rotation=180)
13+
turtle = turtle(display)
14+
#==| Turtle Gizmo Setup end |=========================================
15+
16+
# Fractal Christmas Tree:
17+
# https://codegolf.stackexchange.com/questions/15860/make-a-scalable-christmas-tree
18+
# by Keith Randall
19+
n = 42 # input value for scaling the tree. note: ornaments don't scale
20+
turtle.goto(0, -20)
21+
22+
#star
23+
turtle.left(90)
24+
turtle.forward(3*n)
25+
turtle.pencolor(Color.YELLOW)
26+
turtle.left(126)
27+
turtle.pendown()
28+
for _ in range(5):
29+
turtle.forward(n/5)
30+
turtle.right(144)
31+
turtle.forward(n/5)
32+
turtle.left(72)
33+
turtle.right(126)
34+
35+
#tree
36+
turtle.pencolor(Color.GREEN)
37+
turtle.back(n*4.8)
38+
39+
def tree(d,s):
40+
if d <= 0:
41+
return
42+
turtle.forward(s)
43+
tree(d-1, s*.8)
44+
turtle.right(120)
45+
tree(d-3, s*.5)
46+
turtle.right(120)
47+
tree(d-3, s*.5)
48+
turtle.right(120)
49+
turtle.back(s)
50+
turtle.pendown()
51+
turtle.pencolor(Color.GREEN)
52+
tree(15, n)
53+
turtle.back(n/2)
54+
55+
#ornaments
56+
def ornament(x, y):
57+
turtle.penup()
58+
turtle.goto(x, y)
59+
turtle.pencolor(Color.RED)
60+
turtle.pendown()
61+
turtle.dot(7)
62+
turtle.penup()
63+
64+
orn_pnts=[ (5, 60), (-7, 40), (10, 20), (-15, 0), (25, -20),
65+
(-27, -30), (7, -33), (40, -60), (-9, -63),
66+
(-50, -88), (62, -97) ]
67+
68+
for j in range(len(orn_pnts)):
69+
ornament(orn_pnts[j][0], orn_pnts[j][1])
70+
71+
72+
turtle.penup()
73+
turtle.goto(0, -120)
74+
75+
while True:
76+
pass
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Turtle Gizmo Circle
2+
#==| Turtle Gizmo Setup start |========================================
3+
import board
4+
import busio
5+
import displayio
6+
from adafruit_st7789 import ST7789
7+
from adafruit_turtle import turtle
8+
displayio.release_displays()
9+
spi = busio.SPI(board.SCL, MOSI=board.SDA)
10+
display_bus = displayio.FourWire(spi, command=board.TX, chip_select=board.RX)
11+
display = ST7789(display_bus, width=240, height=240, rowstart=80,
12+
backlight_pin=board.A3, rotation=180)
13+
turtle = turtle(display)
14+
#==| Turtle Gizmo Setup end |=========================================
15+
16+
turtle.penup()
17+
turtle.right(90)
18+
turtle.forward(118)
19+
turtle.left(90)
20+
turtle.pendown()
21+
turtle.circle(118) #radius of the circle
22+
23+
while True:
24+
pass
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Turtle Circle Petals
2+
#==| Turtle Gizmo Setup start |========================================
3+
import board
4+
import busio
5+
import displayio
6+
from adafruit_st7789 import ST7789
7+
from adafruit_turtle import Color, turtle
8+
displayio.release_displays()
9+
spi = busio.SPI(board.SCL, MOSI=board.SDA)
10+
display_bus = displayio.FourWire(spi, command=board.TX, chip_select=board.RX)
11+
display = ST7789(display_bus, width=240, height=240, rowstart=80,
12+
backlight_pin=board.A3, rotation=180)
13+
turtle = turtle(display)
14+
#==| Turtle Gizmo Setup end |=========================================
15+
16+
colors = [Color.YELLOW, Color.GREEN]
17+
18+
for _ in range(4):
19+
for i in range (5):
20+
turtle.pencolor(colors[i % 2])
21+
turtle.pendown()
22+
turtle.circle(60 - (i*10) )
23+
turtle.penup()
24+
turtle.right(90)
25+
26+
while True:
27+
pass
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# Turtle Gizmo Hilbert
2+
#==| Turtle Gizmo Setup start |========================================
3+
import board
4+
import busio
5+
import displayio
6+
from adafruit_st7789 import ST7789
7+
from adafruit_turtle import Color, turtle
8+
displayio.release_displays()
9+
spi = busio.SPI(board.SCL, MOSI=board.SDA)
10+
display_bus = displayio.FourWire(spi, command=board.TX, chip_select=board.RX)
11+
display = ST7789(display_bus, width=240, height=240, rowstart=80,
12+
backlight_pin=board.A3, rotation=180)
13+
turtle = turtle(display)
14+
#==| Turtle Gizmo Setup end |=========================================
15+
16+
def hilbert2(step, rule, angle, depth, t):
17+
if depth > 0:
18+
a = lambda: hilbert2(step, "a", angle, depth - 1, t)
19+
b = lambda: hilbert2(step, "b", angle, depth - 1, t)
20+
left = lambda: t.left(angle)
21+
right = lambda: t.right(angle)
22+
forward = lambda: t.forward(step)
23+
if rule == "a":
24+
left()
25+
b()
26+
forward()
27+
right()
28+
a()
29+
forward()
30+
a()
31+
right()
32+
forward()
33+
b()
34+
left()
35+
if rule == "b":
36+
right()
37+
a()
38+
forward()
39+
left()
40+
b()
41+
forward()
42+
b()
43+
left()
44+
forward()
45+
a()
46+
right()
47+
48+
turtle.penup()
49+
50+
turtle.goto(-108, -108)
51+
turtle.pendown()
52+
turtle.pencolor(Color.PURPLE)
53+
hilbert2(7, "a", 90, 5, turtle)
54+
55+
while True:
56+
pass
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Turtle Gizmo Koch Snowflake
2+
#==| Turtle Gizmo Setup start |========================================
3+
import board
4+
import busio
5+
import displayio
6+
from adafruit_st7789 import ST7789
7+
from adafruit_turtle import turtle
8+
displayio.release_displays()
9+
spi = busio.SPI(board.SCL, MOSI=board.SDA)
10+
display_bus = displayio.FourWire(spi, command=board.TX, chip_select=board.RX)
11+
display = ST7789(display_bus, width=240, height=240, rowstart=80,
12+
backlight_pin=board.A3, rotation=180)
13+
turtle = turtle(display)
14+
#==| Turtle Gizmo Setup end |=========================================
15+
16+
def f(side_length, depth, generation):
17+
if depth == 0:
18+
side = turtle.forward(side_length)
19+
else:
20+
side = lambda: f(side_length / 3, depth - 1, generation + 1)
21+
side()
22+
turtle.left(60)
23+
side()
24+
turtle.right(120)
25+
side()
26+
turtle.left(60)
27+
side()
28+
29+
turtle.penup()
30+
turtle.goto(-99, 56)
31+
turtle.pendown()
32+
33+
num_generations = 3
34+
top_side = lambda: f(218, num_generations, 0)
35+
36+
top_side()
37+
turtle.right(120)
38+
top_side()
39+
turtle.right(120)
40+
top_side()
41+
42+
while True:
43+
pass
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Turtle Gizmo Parabolic Jack
2+
#==| Turtle Gizmo Setup start |========================================
3+
import board
4+
import busio
5+
import displayio
6+
from adafruit_st7789 import ST7789
7+
from adafruit_turtle import Color, turtle
8+
displayio.release_displays()
9+
spi = busio.SPI(board.SCL, MOSI=board.SDA)
10+
display_bus = displayio.FourWire(spi, command=board.TX, chip_select=board.RX)
11+
display = ST7789(display_bus, width=240, height=240, rowstart=80,
12+
backlight_pin=board.A3, rotation=180)
13+
turtle = turtle(display)
14+
#==| Turtle Gizmo Setup end |=========================================
15+
16+
print("Draw parabolas using straight line segments!")
17+
18+
def vert(x, y, size):
19+
turtle.goto(x, y)
20+
turtle.dot(size)
21+
22+
turtle.penup()
23+
turtle.pencolor(Color.GREEN)
24+
25+
vert(0, 0, 7)
26+
vert(0, 100, 7)
27+
vert(100, 0, 7)
28+
vert(0, -100, 7)
29+
vert(-100, 0, 7)
30+
31+
x_quad=[10, 10, -10, -10]
32+
y_quad=[10, -10, -10, 10]
33+
34+
for q in range(4):
35+
for i in range(0,11):
36+
x_from = 0
37+
y_from = (10-i) * y_quad[q]
38+
x_to = i * x_quad[q]
39+
y_to = 0
40+
turtle.penup()
41+
turtle.goto(x_from,y_from)
42+
turtle.pendown()
43+
turtle.goto(x_to,y_to)
44+
45+
turtle.home()
46+
47+
48+
while True:
49+
pass
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# Turtle Gizmo Sierpinski Triangle
2+
#==| Turtle Gizmo Setup start |========================================
3+
import board
4+
import busio
5+
import displayio
6+
from adafruit_st7789 import ST7789
7+
from adafruit_turtle import turtle
8+
displayio.release_displays()
9+
spi = busio.SPI(board.SCL, MOSI=board.SDA)
10+
display_bus = displayio.FourWire(spi, command=board.TX, chip_select=board.RX)
11+
display = ST7789(display_bus, width=240, height=240, rowstart=80,
12+
backlight_pin=board.A3, rotation=180)
13+
turtle = turtle(display)
14+
#==| Turtle Gizmo Setup end |=========================================
15+
16+
def getMid(p1, p2):
17+
return ((p1[0] + p2[0]) / 2, (p1[1] + p2[1]) / 2) #find midpoint
18+
19+
def triangle(points, depth):
20+
21+
turtle.penup()
22+
turtle.goto(points[0][0], points[0][1])
23+
turtle.pendown()
24+
turtle.goto(points[1][0], points[1][1])
25+
turtle.goto(points[2][0], points[2][1])
26+
turtle.goto(points[0][0], points[0][1])
27+
28+
if depth > 0:
29+
triangle([points[0],
30+
getMid(points[0], points[1]),
31+
getMid(points[0], points[2])],
32+
depth-1)
33+
triangle([points[1],
34+
getMid(points[0], points[1]),
35+
getMid(points[1], points[2])],
36+
depth-1)
37+
triangle([points[2],
38+
getMid(points[2], points[1]),
39+
getMid(points[0], points[2])],
40+
depth-1)
41+
42+
big = min(display.width/2, display.height/2)
43+
little = big / 1.4
44+
seed_points = [[-big, -little], [0, big], [big, -little]] #size of triangle
45+
triangle(seed_points, 4)
46+
47+
while True:
48+
pass

0 commit comments

Comments
 (0)