generated from mwc/problemset_typeface
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.
This commit is contained in:
parent
67f3e0cb61
commit
a2a5571155
199
typeface.py
199
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
|
||||
|
|
Loading…
Reference in New Issue