From 04dd780765cb38a135abb9ef031f9e84bef6a7f6 Mon Sep 17 00:00:00 2001 From: Chris Proctor Date: Sat, 12 Aug 2023 14:51:24 -0400 Subject: [PATCH] Adding student work --- typeface.py | 557 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 538 insertions(+), 19 deletions(-) diff --git a/typeface.py b/typeface.py index b966bef..29fc314 100644 --- a/typeface.py +++ b/typeface.py @@ -11,69 +11,554 @@ from turtle import * from math import sqrt +from math import atan +from math import degrees + +def fly(dist): + penup() + forward(dist) + pendown() + + +def diagonal(grids,unit): + pendown() + forward(grids*unit*sqrt(2)) + penup() + +def segment(grids,unit): + pendown() + forward(grids*unit) + penup() + +def no_pen(grids,unit): + penup() + forward(grids*unit) + pendown() + +def returnToHome(size): + right(90) + fly(size) + right(180) def draw_letter_a(unit): - pass + penup() + forward(unit) + pendown() + forward(1.5 * unit) + left(degrees(atan(2))) + forward(sqrt(5) * 1.5 * unit) + right(degrees(atan(2))) + forward(unit) + right(90) + forward(3 * unit) + left(90) + forward(2 * unit) + left(90) + forward(8 * unit) + left(90) + forward(2 * unit) + left(degrees(atan(2))) + forward(sqrt(5) * 4 * unit) + left(180 - degrees(atan(2))) + penup() + forward(3 * unit) + left(90) + forward(4 * unit) + pendown() + right(90) + forward(1 * unit) + left(90) + forward(2 * unit) + left(90 + degrees(atan(2))) + forward(sqrt(5) * unit) + penup() + forward(sqrt(5) * 2 * unit) + right(degrees(atan(2))) + forward(2 * unit) + right(180) + pendown() def draw_letter_b(unit): pass def draw_letter_c(unit): - pass + no_pen(3,unit) + + segment(4,unit) + left(90) + segment(2,unit) + left(90) + segment(2,unit) + right(45) + diagonal(2,unit) + right(90) + diagonal(2,unit) + right(45) + segment(2,unit) + left(90) + segment(2,unit) + left(90) + segment(4,unit) + left(45) + diagonal(2,unit) + left(45) + segment(4,unit) + left(45) + diagonal(2,unit) + + right(135) + no_pen(3,unit) + left(180) def draw_letter_d(unit): - pass + no_pen(1,unit) + # the outline of the D + segment(5,unit) + left(45) + diagonal(1,unit) + left(45) + segment(6,unit) + left(45) + diagonal(1,unit) + left(45) + segment(5,unit) + left(90) + segment(8,unit) + + left(90) + no_pen(2,unit) + left(90) + no_pen(2,unit) + + # the inner part of the D + segment(4,unit) + right(90) + segment(1,unit) + right(45) + diagonal(1,unit) + right(45) + segment(2,unit) + right(45) + diagonal(1,unit) + right(45) + segment(1,unit) + + no_pen(3,unit) + left(90) + no_pen(2,unit) + left(90) def draw_letter_e(unit): - pass + forward(unit * 0) + left(90) + forward(unit * 8) + right(90) + forward(unit * 7) + right(90) + forward(unit * 2) + right(90) + forward(unit * 5) + left(90) + forward(unit * 1) + left(90) + forward(unit * 5) + right(90) + forward(unit * 2) + right(90) + forward(unit * 5) + left(90) + forward(unit *1) + left(90) + forward(unit * 5) + right(90) + forward(unit * 2) + right(90) + forward(unit * 7) + right(180) def draw_letter_f(unit): - pass + #print(heading()) + #print(pos()) + circle(unit,90) + forward(6 * unit) + circle(unit,90) + right(180) + forward(7 * unit) + right(90) + forward(2 * unit) + circle(-unit,-90) + left(180) + forward(3 * unit) + left(90) + forward(2 * unit) + left(90) + forward(4 * unit) + right(90) + forward(2 * unit) + circle(-unit,-90) + left(180) + forward(3 * unit) + left(90) + forward(3 * unit) + circle(unit,90) + left(180) + forward(4 * unit) + right(180) def draw_letter_g(unit): pass def draw_letter_h(unit): - pass + for i in range(2): + circle(unit,90) + forward(6 * unit) + circle(unit,90) + right(180) + forward(3.5 * unit) + circle(-unit,-90) + right(180) + forward(1.5 * unit) + circle(unit,90) + forward(1 * unit) + circle(unit,90) + forward(1.5 * unit) + circle(unit,90) + right(180) + forward(3.5 * unit) + right(180) + def draw_letter_i(unit): - pass - + fly(unit * 3.125) + forward(unit * 1.75) + left(90) + forward(unit * 4) + left(90) + forward(unit * 0.875) + right(90) + fly(unit) + right(90) + circle(unit * .875) + right(90) + fly(unit) + right(90) + forward(unit * .875) + left(90) + forward(unit * 4) + returnToHome(unit * 3.125) def draw_letter_j(unit): - pass + # print(heading()) + # print(pos()) + left(90) + penup() + forward(8 * unit) + right(90) + forward(unit) + pendown() + forward(6 * unit) + right(90) + forward(6 * unit) + circle(-2 * unit, 90) + forward(2 * unit) + circle(-2 * unit, 90) + forward(unit) + right(90) + forward(2 * unit) + right(90) + forward(unit) + circle(unit, 180) + forward(4 * unit) + left(90) + forward(4 * unit) + right(90) + forward(2 * unit) + penup() + left(90) + forward(unit) + left(90) + forward(8 * unit) + left(90) def draw_letter_k(unit): - pass + no_pen(1,unit) + left(90) + segment(8,unit) + right(90) + segment(2,unit) + right(90) + segment(2,unit) + left(135) + diagonal(2,unit) + right(45) + segment(2,unit) + right(90) + segment(1,unit) + right(45) + diagonal(3,unit) + left(90) + diagonal(3,unit) + right(45) + segment(1,unit) + right(90) + segment(2,unit) + right(45) + diagonal(2,unit) + left(135) + segment(2,unit) + right(90) + segment(2,unit) + no_pen(1,unit) + right(180) def draw_letter_l(unit): - pass + left(90) + forward(unit * 8) + right(90) + forward(unit * 2) + right(90) + forward(unit * 6) + left(90) + forward(unit * 6) + right(90) + forward(unit *2) + right(90) + forward(unit * 8) + right(180) def draw_letter_m(unit): pass def draw_letter_n(unit): - pass + def draw_n_half(unit): + forward(unit * 1.5) + left(90) + forward(unit * 3.5) + right(164.054604) + forward(unit * sqrt(13.25)) + left(74.054604) + forward(unit * 1.5) + left(90) + forward(unit *8) + + fly(unit * 2) + draw_n_half(unit) + left(90) + draw_n_half(unit) + returnToHome(unit * 2) def draw_letter_o(unit): - pass + left (90) + forward (unit * 8) + right(90) + forward (unit * 4) + right (90) + forward (unit * 8) + right (90) + forward (unit * 4) + penup () + right (90) + forward (unit * 1) + right (90) + forward (unit * 1) + pendown () + forward (unit * 2) + left (90) + forward (unit * 6) + left (90) + forward (unit * 2) + left (90) + forward (unit * 6) + penup () + forward (unit * 1) + right (90) + forward (unit * 1) + right (180) def draw_letter_p(unit): - pass + circle(unit,90) + forward(6 * unit) + circle(unit,90) + right(180) + forward(5 * unit) + circle(-2*unit,180) + forward(2 * unit) + left(90) + forward(3 * unit) + circle(unit,90) + left(180) + forward(4 * unit) + right(180) + penup() + forward(3 * unit) + left(90) + forward(7 * unit) + right(90) + pendown() + forward(unit) + circle(-unit,180) + forward(unit) + right(90) + forward(2 * unit) + penup() + left(90) + forward(3 * unit) + left(90) + forward(7 * unit) + left(90) + + + def draw_letter_q(unit): - pass + penup() + forward(3 * unit) + pendown() + forward(2 * unit) + left(45) + forward(sqrt(2) * unit / 2) + penup() + forward(sqrt(2) * unit / 2) + pendown() + forward(2 * sqrt(2) * unit) + left(45) + for i in range(3): + forward(2 * unit) + left(45) + forward(3 * sqrt(2) * unit) + left(45) + penup() + forward(unit) + left(90) + forward(unit) + right(45) + for i in range(2): + pendown() + forward(sqrt(2) * unit) + penup() + forward(sqrt(2) * unit) + pendown() + forward(sqrt(2) * unit) + left(90) + for i in range(2): + forward(3 * sqrt(2) * unit) + left(90) + forward(sqrt(2) * unit) + left(45) + forward(4 * unit) + right(135) + penup() + forward(sqrt(2) * unit) + right(45) + pendown() + forward(2 * unit) + penup() + forward(2 * unit) + pendown() + left(45) + forward(sqrt(2) * unit) + right(135) + forward(unit) + right(45) + forward(sqrt(2) * unit / 2) + penup() + left(90) + forward(sqrt(2) * unit / 2) + right(45) + forward(5 * unit) + right(180) def draw_letter_r(unit): - pass + fly(unit * 2) + forward(unit * 1.5) + left(90) + forward(unit * 3.5) + right(135) + forward(unit * sqrt(2)) + right(45) + forward(unit * 2.5) + left(90) + forward(unit * 1.5) + left(90) + forward(unit * 2.5) + left(45) + forward(unit * sqrt(2)) + right(90) + forward(unit * sqrt(2)) + left(45) + forward(unit * 2.5) + left(45) + forward(unit * sqrt(2)) + left(45) + forward(unit * 3) + left(135) + fly(unit * 1.5 * sqrt(2)) + right(45) + forward(unit * 1.5) + left(90) + forward(unit * .5) + left(45) + forward(unit * sqrt(2) * .5) + left(45) + forward(unit * .5) + left(45) + forward(unit* sqrt(2)*.5) + left(45) + forward(unit * .5) + right(45) + fly(unit * 1.5 * sqrt(2)) + left(135) + forward(unit * 8) + returnToHome(unit * 2) def draw_letter_s(unit): pass def draw_letter_t(unit): - pass + penup() + forward(unit * 3) + pendown() + left(90) + forward (unit * 7) + left (90) + forward (unit * 2) + right (90) + forward (unit * 1) + right (90) + forward (unit * 5) + right (90) + forward (unit * 1) + right (90) + forward (unit * 2) + left (90) + forward (unit * 7) + right (90) + forward (unit * 1) + penup () + forward (unit * 3) + left (180) + + + def draw_letter_u(unit): - pass + + left (90) + forward (unit * 8) + right(90) + forward (unit * 1) + right (90) + forward (unit * 7) + left (90) + forward (unit * 2) + left (90) + forward (unit * 7) + right (90) + forward (unit * 1) + right (90) + forward (unit * 8) + right (90) + forward (unit * 4) + right (180) def draw_letter_v(unit): pass @@ -88,4 +573,38 @@ def draw_letter_y(unit): pass def draw_letter_z(unit): - pass + penup() + forward(3 * unit) + left(90) + forward(4 * unit) + right(degrees(atan(2 / 3))) + pendown() + for i in range(2): + forward(sqrt(13) * unit) + left(90 + degrees(atan(2 / 3))) + forward(4 * unit) + right(90) + forward(unit) + right(90) + forward(6 * unit) + right(90) + forward(unit) + right(degrees(atan(2 / 3))) + forward(sqrt(13) * unit) + penup() + right(90 - degrees(atan(2 / 3))) + forward(unit / 2.0) + left(90 - degrees(atan(2/3))) + pendown() + for i in range(2): + forward(sqrt(13) * unit) + right(90 - degrees(atan(2 / 3))) + forward(unit) + right(90 + degrees(atan(2 / 3))) + forward(sqrt(13) * unit) + left(90 + degrees(atan(2 / 3))) + penup() + forward(3.5 * unit) + left(90) + forward(4 * unit) + left(90)