generated from mwc/project_drawing
498 lines
7.9 KiB
Python
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
|