Turtle Graphics on ESP32-S3-EYE/CircuitPython
In Python,
  turtle graphics
  provides a representation of a physical “turtle” (a little robot with a pen)
  that draws on a sheet of paper on the floor.
It’s an effective and
  well-proven way for learners to encounter programming concepts and interaction
  with software, as it provides instant, visible feedback. It also provides
  convenient access to graphical output in general.
py_turtle.py
  is a Python 3 script run on desktop to draw Rotated Squares using Turtle
  Graphics. (code copied from
  https://deborahrfowler.com/MathForVSFX/RotatedSquares.html)
# Turtle Exercise run on Desktop/Python 3
import turtle
print("Turtle Exercise run on Desktop/Python 3")
def drawSquare(t,size,angle):
    t.left(angle)
    halfsize = size * .5
    t.pu()
    t.setpos(0,0)
    t.backward(halfsize)
    t.left(90)
    t.backward(halfsize)
    t.right(90)
    t.pd()
    for i in range(0,4):
        t.fd(size)
        t.left(90)
def drawSquarePattern(t):
    t.color("black")
    drawSquare(t,240,0)
    for i in range(0,20):
        size = 240 * pow(1/1.2,i+1)
        drawSquare(t,size,12.5)
    t.ht()
def main():
    turtle.setup(750,750)
    turtle.title("Rotated Squares")
    t = turtle.Pen()
    t.width(2)
    t.speed(0)
    drawSquarePattern(t)
    turtle.exitonclick()
main()
CircuitPython Turtle Graphics Library is built on top of displayio for use on display based boards.
cpyS3EYE_turtle.py, ported to run on ESP23-S3-EYE/CircuitPython 8 using adafruit_turtle.mpy library.
# Turtle Exercise run on ESP32-S3-EYE/CircuitPython
# ref: https://learn.adafruit.com/circuitpython-turtle-graphics
import board
from adafruit_turtle import Color, turtle
import os, sys
display = board.DISPLAY
turtle = turtle(board.DISPLAY)
info = os.uname()[4] + "\n" + \
       sys.implementation[0] + " " + os.uname()[3] + "\n" + \
       "board.DISPLAY: " + str(display.width) + "x" + str(display.height)
print("=======================================")
print(info)
print("=======================================")
print("Turtle Exercise run on ESP32-S3-EYE/CircuitPython")
def drawSquare(t,size,angle):
    t.left(angle)
    halfsize = size * .5
    t.pu()
    t.setpos(0,0)
    t.backward(halfsize)
    t.left(90)
    t.backward(halfsize)
    t.right(90)
    t.pd()
    for i in range(0,4):
        t.fd(size)
        t.left(90)
def drawSquarePattern(t):
    t.pencolor(Color.WHITE)
    drawSquare(t,240,0)
    for i in range(0,20):
        size = 240 * pow(1/1.2,i+1)
        drawSquare(t,size,12.5)
    t.ht()
drawSquarePattern(turtle)
print("~ bye ~")
Comments
Post a Comment