project_drawing/typeface.py

498 lines
7.9 KiB
Python

# typeface.py
# By Chris Proctor and _________
# Contains one function for each letter in the English alphabet.
# Each function should draw its letter at a scale of `unit`, and then
# return back to the same position and heading where it started.
# Note: The `sqrt` function from math may be helpful--if you want to
# move the turtle along the diagonal of a square with side length x,
# the turtle should move a distance of sqrt(x)
from turtle import *
from math import sqrt
pensize(5)
def draw_letter_a(unit):
penup()
forward(unit*1)
pendown()
# 1st & 2nd stem sections of letter
forward(unit*2)
left(90)
forward(unit*3)
right(90)
forward(unit*2)
right(90)
forward(unit*3)
left(90)
forward(unit*2)
left(90)
forward(unit*6)
# 45 degree top section of letter
left(45)
forward(unit * 2 * sqrt(2))
left(45)
forward(unit*2)
left(45)
forward(unit * 2 * sqrt(2))
left(45)
#remander of left stem section of letter
forward(unit*6)
left(90)
#interior cross bar section
penup()
left(90)
forward(unit*4)
right(90)
forward(unit*2)
pendown()
forward(unit*2)
left(90)
forward(unit*1)
left(45)
forward(unit * 1 * sqrt(2))
left(90)
forward(unit * 1 * sqrt(2))
left(45)
forward(unit*1)
#penup moving back to initial position
penup()
right(90)
forward(unit*2)
left(90)
forward(unit*4)
# Start position
left(90)
def draw_letter_b(unit):
pass
def draw_letter_c(unit):
pass
def draw_letter_d(unit):
penup()
forward(unit*1)
"Draw base and right side of D"
pendown()
forward(unit*4)
left(45)
forward(unit * 2 * sqrt(2))
left(45)
forward(unit*4)
left(45)
forward(unit * 2 * sqrt(2))
"Top and left side of D"
left(45)
forward(unit*4)
left(90)
forward(unit*8)
"Inner section of D"
penup()
left(180)
forward(unit*2)
right(90)
forward(unit*2)
pendown()
forward(unit*1)
left(45)
forward(unit * 1 * sqrt(2))
left(45)
forward(unit*2)
left(45)
forward(unit * 1 * sqrt(2))
left(45)
forward(unit*1)
left(90)
forward(unit*4)
"Back to beginning"
penup()
right(90)
forward(unit*3)
left(90)
forward(unit*2)
left(90)
def draw_letter_e(unit):
penup()
forward(unit*1)
pendown()
#Base leg section
forward(unit*6)
left(90)
forward(unit*2)
left(90)
forward(unit*4)
right(90)
# middle section
forward(unit*1)
right(90)
forward(unit*4)
left(90)
forward(unit*2)
left(90)
forward(unit*4)
right(90)
# arm (top) section
forward(unit*1)
right(90)
forward(unit*4)
left(90)
forward(unit*2)
left(90)
forward(unit*6)
# completing stem of letter
left(90)
forward(unit*8)
# Start position
left(90)
def draw_letter_f(unit):
pass
def draw_letter_g(unit):
pass
def draw_letter_h(unit):
pass
def draw_letter_i(unit):
# penup to move into position to draw
penup()
forward(unit*3)
pendown()
#Stem of letter "I"
forward(unit*2)
left(90)
forward(unit*8)
left(90)
forward(unit*2)
left(90)
forward(unit*8)
#Start position
left(90)
def draw_letter_j(unit):
pass
def draw_letter_k(unit):
pass
def draw_letter_l(unit):
pass
def draw_letter_m(unit):
penup()
forward(unit*1)
"beginning stem section and bottom section of N"
pendown()
forward(unit*2)
left(90)
forward(unit*4)
right(135)
forward(unit * 1 * sqrt(2))
left(90)
forward(unit * 1 * sqrt(2))
right(45)
right(90)
forward(unit*4)
left(90)
forward(unit*2)
"Right stem section and top of N"
left(90)
forward(unit*8)
left(90)
forward(unit*2)
left(45)
forward(unit * 1 * sqrt(2))
right(90)
forward(unit * 1 * sqrt(2))
left(45)
forward(unit*2)
"Left stem of N"
left(90)
forward(unit*8)
"Back to beginning"
penup()
right(90)
forward(unit*1)
right(180)
def draw_letter_n(unit):
penup()
forward(unit*1)
"1st stem section and angle of N"
pendown()
forward(unit*2)
left(90)
forward(unit*3)
right(135)
forward(unit * 3 * sqrt(2))
left(45)
forward(unit*1)
"Right and top of N"
left(90)
forward(unit*8)
left(90)
forward(unit*2)
left(90)
forward(unit*3)
right(135)
forward(unit * 3 * sqrt(2))
left(45)
forward(unit*1)
"Left side of stem N"
left(90)
forward(unit*8)
"Back to beginning"
penup()
right(90)
forward(unit*1)
right(180)
def draw_letter_o(unit):
penup()
forward(unit*3)
"Draw base of O"
pendown()
forward(unit*2)
"Right side and top of O"
left(45)
forward(unit * 2 * sqrt(2))
left(45)
forward(unit*4)
left(45)
forward(unit * 2 * sqrt(2))
left(45)
forward(unit*2)
"Left side of O"
left(45)
forward(unit * 2 * sqrt(2))
left(45)
forward(unit*4)
left(45)
forward(unit * 2 * sqrt(2))
"Inner section of O"
penup()
left(135)
forward(unit*3)
right(90)
pendown()
forward(unit*2)
left(90)
forward(unit*2)
left(90)
forward(unit*2)
left(90)
forward(unit*2)
"Back to start"
penup()
right(90)
forward(unit*3)
left(90)
forward(unit*3)
left(90)
def draw_letter_p(unit):
penup()
forward(unit*1)
pendown()
"Draw bottom and right side of stem"
forward(unit*2)
left(90)
forward(unit*2)
"Right and top section of P"
right(90)
forward(unit*2)
left(45)
forward(unit * 2 * sqrt(2))
left(45)
forward(unit*2)
left(45)
forward(unit * 2 * sqrt(2))
left(45)
forward(unit*4)
"Left section of stem to bottom"
left(90)
forward(unit*8)
"Inner section of P"
penup()
left(180)
forward(unit*4)
right(90)
forward(unit*2)
pendown()
forward(unit*2)
left(90)
forward(unit*2)
left(90)
forward(unit*2)
left(90)
forward(unit*2)
"Pen Back to the beginning"
penup()
right(90)
forward(unit*3)
left(90)
forward(unit*4)
left(90)
def draw_letter_q(unit):
pass
def draw_letter_r(unit):
penup()
forward(unit*1)
pendown()
"1st & 2nd stem sections of R"
forward(unit*2)
left(90)
forward(unit*3)
right(90)
forward(unit*2)
right(90)
forward(unit*3)
left(90)
forward(unit*2)
left(90)
forward(unit*3)
"Angled right sections of R"
left(45)
forward(unit * 1 * sqrt(2))
right(90)
forward(unit * 1 * sqrt(2))
left(45)
forward(unit*2)
left(45)
forward(unit * 1 * sqrt(2))
left(45)
"Top and left stem of R"
forward(unit*5)
left(90)
forward(unit*8)
"Inner section of R"
penup()
left(180)
forward(unit*4)
right(90)
forward(unit*2)
pendown()
forward(unit*2)
left(90)
forward(unit*2)
left(90)
forward(unit*2)
left(90)
forward(unit*2)
"Back to beginning"
penup()
right(90)
forward(unit*3)
left(90)
forward(unit*4)
left(90)
def draw_letter_s(unit):
pass
def draw_letter_t(unit):
penup()
forward(unit*3)
pendown()
# right side of stem section
forward(unit*2)
left(90)
forward(unit*6)
# Arm (top) section
right(90)
forward(unit*2)
left(90)
forward(unit*2)
left(90)
forward(unit*6)
left(90)
forward(unit*2)
left(90)
forward(unit*2)
#left side of stem, moving down to start
right(90)
forward(unit*6)
# Start position
left(90)
def draw_letter_u(unit):
pass
def draw_letter_v(unit):
pass
def draw_letter_w(unit):
pass
def draw_letter_x(unit):
pass
def draw_letter_y(unit):
pass
def draw_letter_z(unit):
pass