update a,b,c,i

I was struggled with the error of test.py for a while, then I copied code to ChatGPT and asked it,
I tried pip install superturtle to solve the problem under AI's help, which makes me relieved.

Letter I: the easiest one

Letter A: I started by using angle 80, then I figired that it's hard to do the math, so I changed it to 60 for easier caculation

Letter B: I spent some time exploring how circle works and how initial direction might influence the circle draw, i also use speed() to fasten the process

Letter C: two quater circle combined

To make the pen get the initial position, I tried position() and home(), but they didn't work very well. Then I asked ChatGPT how to make it home to make proof.py work
it gives me specific steps using penup and pendown etc to make it back, which is complicated. So I asked if there is a easier way to achieve this. Then it provides me with initial_position code, which concise the process.
This commit is contained in:
grace-xing6 2024-09-19 22:17:16 -04:00
parent 2656495dce
commit adb289680c
1 changed files with 67 additions and 5 deletions

View File

@ -1,5 +1,5 @@
# typeface.py
# By Chris Proctor and _________
# By Chris Proctor and _____Grace____
# Contains one function for each letter in the English alphabet.
# Each function should draw its letter at a scale of `unit`, and then
@ -13,14 +13,60 @@ from turtle import *
from math import sqrt
def draw_letter_a(unit):
pass
initial_position = pos()
initial_heading = heading()
left(60)
forward(8 * unit)
right(120)
forward(8 * unit)
backward(4 * unit)
right(120)
forward(4 * unit)
penup()
setpos(initial_position) # Return to original position
setheading(initial_heading) # Return to original heading
pendown()
def draw_letter_b(unit):
pass
initial_position = pos()
initial_heading = heading()
speed(0)
circle(2 * unit, 180)
left(180)
circle(2 * unit, 180)
left(90)
forward(8 * unit)
penup()
setpos(initial_position) # Return to original position
setheading(initial_heading) # Return to original heading
pendown()
def draw_letter_c(unit):
pass
initial_position = pos()
initial_heading = heading()
speed(0)
penup()
forward(4 * unit)
left(90)
forward(8 * unit)
pendown()
left(90)
circle(4 * unit, 180)
penup()
right(90)
forward(2 * unit)
pendown()
penup()
setpos(initial_position)
setheading(initial_heading)
pendown()
def draw_letter_d(unit):
pass
@ -37,7 +83,23 @@ def draw_letter_h(unit):
pass
def draw_letter_i(unit):
pass
initial_position = pos()
initial_heading = heading()
penup()
forward(4 * unit)
left(90)
pendown()
forward(5 * unit)
penup()
forward(1 * unit)
pendown()
forward(1 * unit)
penup()
setpos(initial_position)
setheading(initial_heading)
pendown()
def draw_letter_j(unit):
pass