code.py
1 # SPDX-FileCopyrightText: 2019 John Edgar Park for Adafruit Industries 2 # 3 # SPDX-License-Identifier: MIT 4 5 # Turtle Gizmo Hilbert 6 #==| Turtle Gizmo Setup start |======================================== 7 import board 8 import busio 9 import displayio 10 from adafruit_st7789 import ST7789 11 from adafruit_turtle import Color, turtle 12 displayio.release_displays() 13 spi = busio.SPI(board.SCL, MOSI=board.SDA) 14 display_bus = displayio.FourWire(spi, command=board.TX, chip_select=board.RX) 15 display = ST7789(display_bus, width=240, height=240, rowstart=80, 16 backlight_pin=board.A3, rotation=180) 17 turtle = turtle(display) 18 #==| Turtle Gizmo Setup end |========================================= 19 20 def hilbert2(step, rule, angle, depth, t): 21 if depth > 0: 22 a = lambda: hilbert2(step, "a", angle, depth - 1, t) 23 b = lambda: hilbert2(step, "b", angle, depth - 1, t) 24 left = lambda: t.left(angle) 25 right = lambda: t.right(angle) 26 forward = lambda: t.forward(step) 27 if rule == "a": 28 left() 29 b() 30 forward() 31 right() 32 a() 33 forward() 34 a() 35 right() 36 forward() 37 b() 38 left() 39 if rule == "b": 40 right() 41 a() 42 forward() 43 left() 44 b() 45 forward() 46 b() 47 left() 48 forward() 49 a() 50 right() 51 52 turtle.penup() 53 54 turtle.goto(-108, -108) 55 turtle.pendown() 56 turtle.pencolor(Color.PURPLE) 57 hilbert2(7, "a", 90, 5, turtle) 58 59 while True: 60 pass