From a2a5571155b9ceb4236e3732b5b8f349cf729a5d Mon Sep 17 00:00:00 2001 From: root Date: Sat, 21 Sep 2024 02:23:53 -0400 Subject: [PATCH] I made the ghosty skirt use a loop so that I could use it for the different length and letters. I also finished C and D. I had to make sure that I kept track of the coordinates so that I could get back to the starting point. Eventually, I quit trying to prioritize the look and I tried to stick to 90 or 180 degree arcs for the circles so that I didn't have to use as many sqrt(3) fractions. --- typeface.py | 199 ++++++++++++++++++++++++++++++++++------------------ 1 file changed, 132 insertions(+), 67 deletions(-) diff --git a/typeface.py b/typeface.py index e6a45fc..629eb19 100644 --- a/typeface.py +++ b/typeface.py @@ -1,5 +1,5 @@ # typeface.py -# By Chris Proctor and _________ +# By Chris Proctor and Stacy S # Contains one function for each letter in the English alphabet. # Each function should draw its letter at a scale of `unit`, and then @@ -11,8 +11,6 @@ from turtle import * from math import sqrt -from math import asin -from math import pi def draw_eye(unit): right(45) @@ -27,99 +25,166 @@ def draw_eye(unit): penup() left(45) -def draw_ghostyskirt_type_a(unit): - circle(-unit/4, 180) - circle(unit/4, 180) - circle(-unit/4, 180) - circle(unit/4, 180) - circle(-unit/4, 180) - -def draw_ghostyskirt_type_b(unit): - circle(-unit/4, 180) - circle(unit/4, 180) - circle(-unit/4, 180) - circle(unit/4, 180) - circle(-unit/4, 180) - circle(unit/4, 180) +def draw_master_ghostyskirt(unit, length): + for width in range(length): + circle(-unit/4, 180) + circle(unit/4, 180) circle(-unit/4, 180) def draw_letter_a(unit): - penup() - forward(unit) + width(1) + penup() #(0,0) + forward(unit) #(1,0) left(90) - forward(unit/4) + forward(unit/4) #(1,1/4) pendown() - forward(19*unit/4) - circle(-3*unit, 180) - forward(19*unit/4) - draw_ghostyskirt_type_a(unit) - forward(2*unit) - circle(unit/2, 180) - forward(2*unit) - draw_ghostyskirt_type_a(unit) + forward(19*unit/4) #(1,5) + circle(-3*unit, 180) #(7,5) + forward(19*unit/4) #(7,1/4) + draw_master_ghostyskirt(unit,2) #(9/2,1/4) + forward(2*unit) #(9/2,9/4) + circle(unit/2, 180) #(7/2,9/4) + forward(2*unit) #(7/2,1/4) + draw_master_ghostyskirt(unit,2) #(1,1/4) penup() - forward(15*unit/4) + forward(15*unit/4) #(1,4) right(90) - forward(3*unit) + forward(3*unit) #(4,4) pendown() - circle(unit) + circle(unit) #(4,4) penup() - circle(unit, 90) - forward(5*unit/4) + circle(unit, 90) #(5,5) + forward(5*unit/4) #(5,25/4) draw_eye(unit) left(90) - forward(2*unit) + forward(2*unit) #(3,25/4) draw_eye(-unit) - + penup() + forward(3*unit) + left(90) + forward(25*unit/4) + left(90) def draw_letter_b(unit): - penup() - forward(unit) + width(1) + penup() #(0,0) + forward(unit) #(1,0) left(90) - forward(unit/4) + forward(3*unit/4) #(1,1/4) pendown() - forward(23*unit/4) - circle(-2*unit, 90) - forward(2*unit) - circle(-2*unit, 180) + forward(21*unit/4) #(1,6) + circle(-2*unit, 90) #(3,8) + forward(2*unit) #(5,8) + circle(-2*unit, 180) #(5,4) right(180) - circle(-2*unit, 135) - left(45) - forward(2*sqrt(2)*unit/8) - draw_ghostyskirt_type_b(unit) - circle(.95*unit/4, 180) - circle(-.95*unit/4, 180) - circle(.95*unit/4, 180) - circle(-.95*unit/4, 180) + circle(-2*unit, 150) #(6,2-sqrt3) + left(60) + forward((((7-4*sqrt(3)))/4)*unit) #(6,1/4) + draw_master_ghostyskirt(unit,4) #(3/2,1/4) + circle(unit/4, 90) + circle(-unit/4, 90) #(1,3/4) penup() - forward(4.5*unit) + forward(17*unit/4) #(1,5) right(90) + forward(3*unit) #(4,5) + pendown() + circle(unit) #(4,5) + right(90) + penup() + forward(3.5*unit) #(4,3/2) + left(90) + pendown() + circle(unit) #(4,3/2) + penup() + left(90) + forward(11*unit/2) #(4,7) + right(90) + forward(unit) #(5,7) + left(90) + draw_eye(unit) #(5,7) + left(90) + forward(2*unit) #(3,7) + draw_eye(-unit) #(3,7) forward(3*unit) - pendown() - circle(unit) - right(90) - penup() - forward(3.5*unit) left(90) - pendown() - circle(unit) - penup() + forward(7*unit) left(90) + +def draw_letter_c(unit): + width(1) + penup() #(0,0) + forward(unit) #(1,0) + left(90) + forward(1*unit) #(1,1) + pendown() + forward(4*unit) #(1,5) + circle(-3*unit, 90) + forward(2*unit) + circle(-unit, 180) + forward(2*unit) + circle(unit,90) + forward(7*unit/4) + circle(unit, 90) + forward(2*unit) + circle(-unit, 180) + left(90) + draw_master_ghostyskirt(unit,4) + circle(unit/4, 90) + circle(-unit/4, 90) + forward(unit/4) #(1,1) + penup() forward(5.5*unit) right(90) - forward(unit) + forward(3*unit) left(90) draw_eye(unit) left(90) - forward(2*unit) - draw_eye(-unit) - - -def draw_letter_c(unit): - pass + forward(4*unit) + left(90) + forward(6.5*unit) + left(90) def draw_letter_d(unit): - pass + width(1) + penup() + forward(unit) + left(90) + forward(unit) + pendown() + forward(6*unit) + circle(-unit, 90) + forward(3*unit) + circle(-2*unit, 90) + forward(3.75*unit) + circle(-2*unit, 90) + left(90) + draw_master_ghostyskirt(unit, 3) + circle(unit/4, 90) + circle(-unit/4, 90) + forward(unit/4) + penup() + forward(2.5*unit) + right(90) + forward(2*unit) + right(90) + pendown() + circle(unit, 180) + forward(unit) + circle(unit, 180) + forward(unit) + penup() + right(180) + forward(2*unit) + draw_eye(unit) + right(90) + forward(2*unit) + left(90) + draw_eye(unit) + left(90) + forward(5*unit) + left(90) + forward(5.5*unit) + left(90) def draw_letter_e(unit): pass