# typeface.py # By Chris Proctor and Hope Wright # 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 def lift_and_move(units_moved, unit): penup() forward(units_moved*unit) pendown() def straight_n_turn(units_moved, direction, degree, unit): for i in range(units_moved): forward(unit) if direction == "r": right(degree) else: left(degree) def diagonal_n_turn(units_moved, direction, degree, unit): for i in range(units_moved): forward((unit*(sqrt(2)))) if direction == "r": right(degree) else: left(degree) def draw_letter_a(unit): lift_and_move(1, unit) straight_n_turn(2, "l", 90, unit) straight_n_turn(3, "r", 90, unit) straight_n_turn(2, "r", 90, unit) straight_n_turn(3, "l", 90, unit) straight_n_turn(2, "l", 90, unit) straight_n_turn(6, "l", 45, unit) diagonal_n_turn(2, "l", 45, unit) straight_n_turn(2, "l", 90, unit) lift_and_move(3, unit) straight_n_turn(1, "l", 90, unit) straight_n_turn(2, "l", 90, unit) straight_n_turn(1, "l", 45, unit) diagonal_n_turn(1, "l", 90, unit) diagonal_n_turn(1, "r", 135, unit) lift_and_move(3, unit) left(135) diagonal_n_turn(2, "l", 45, unit) straight_n_turn(6, "r", 90, unit) lift_and_move(1, unit) right(180) def draw_letter_b(unit): lift_and_move(1, unit) straight_n_turn(5, "l", 90, unit) straight_n_turn(3, "l", 45, unit) diagonal_n_turn(1, "r", 90, unit) diagonal_n_turn(1, "l", 45, unit) straight_n_turn(3, "l", 90, unit) straight_n_turn(5, "l", 90, unit) straight_n_turn(8, "l", 90, unit) straight_n_turn(3, "l", 90, unit) lift_and_move(1, unit) forward(unit*2) lift_and_move(2, unit) straight_n_turn(2, "l", 90, unit) straight_n_turn(1, "l", 90, unit) straight_n_turn(2, "l", 90, unit) straight_n_turn(1, "r", 90, unit) lift_and_move(2, unit) right(90) straight_n_turn(1, "l", 90, unit) straight_n_turn(2, "l", 90, unit) straight_n_turn(1, "r", 90, unit) lift_and_move(1, unit) right(90) lift_and_move(4, unit) right(180) def draw_letter_c(unit): lift_and_move(3, unit) straight_n_turn(4, "l", 45, unit) diagonal_n_turn(1, "l", 90, unit) diagonal_n_turn(1, "l", 45, unit) straight_n_turn(3, "r", 45, unit) diagonal_n_turn(1, "r", 45, unit) straight_n_turn(2, "r", 45, unit) diagonal_n_turn(1, "r", 45, unit) straight_n_turn(3, "l", 45, unit) diagonal_n_turn(1, "l", 90, unit) diagonal_n_turn(1, "l", 45, unit) straight_n_turn(4, "l", 45, unit) diagonal_n_turn(2, "l", 45, unit) straight_n_turn(4, "l", 45, unit) diagonal_n_turn(2, "l", 45, unit) right(180) lift_and_move(3, unit) right (180) def draw_letter_d(unit): lift_and_move(1, unit) straight_n_turn(4, "l", 45, unit) diagonal_n_turn(2, "l", 45, unit) straight_n_turn(4, "l", 45, unit) diagonal_n_turn(2, "l", 135, unit) lift_and_move(2, unit) straight_n_turn(4, "r", 90, unit) # diagonal_n_turn(1, "r", 45, unit) straight_n_turn(2, "r", 90, unit) straight_n_turn(4, "r", 90, unit) straight_n_turn(2, "l", 90, unit) # diagonal_n_turn(1, "l", 135, unit) lift_and_move(2, unit) left(90) straight_n_turn(4, "l", 90, unit) straight_n_turn(8, "r", 90, unit) lift_and_move(1, unit) right(180) def draw_letter_e(unit): pass def draw_letter_f(unit): pass def draw_letter_g(unit): pass def draw_letter_h(unit): pass def draw_letter_i(unit): pass def draw_letter_j(unit): pass def draw_letter_k(unit): pass def draw_letter_l(unit): pass def draw_letter_m(unit): pass def draw_letter_n(unit): pass def draw_letter_o(unit): pass def draw_letter_p(unit): pass def draw_letter_q(unit): pass def draw_letter_r(unit): pass def draw_letter_s(unit): pass def draw_letter_t(unit): pass 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