project_drawing/drawing.py

264 lines
4.0 KiB
Python

# drawing.py
# ----------
# By Kathryn Odell-Hamilton
#
# (Briefly describe what this program does.)
"""The program will create a grid of draw black varying weight lines horizontally and vertically fully and partially
across to create one fill square and two fill rectangles in a Piet Mondrian abstract artistic style. Within the layout
a few shapes (squares and rectangles) will be drawn and filled with primary colors, red, blue, yellow.
"""
from turtle import *
from superturtle.movement import no_delay
from typeface import (
draw_letter_p,
draw_letter_i,
draw_letter_e,
draw_letter_t,
draw_letter_m,
draw_letter_o,
draw_letter_n,
draw_letter_d,
draw_letter_r,
draw_letter_i,
draw_letter_a,
draw_letter_n,
)
screensize(500, 500)
speed(10)
# Positioning pen in upper left of screen
penup()
setposition(-200, 200)
# Pen color and size
pendown()
# pen color and size
pencolor("black")
pensize(2)
# Drawing a square
def square(side_length):
for side in range(4):
forward(side_length)
right(90)
sizes = [400]
for size in sizes:
square(size)
penup()
# Move down on left side
right(90)
forward(170)
left(90)
# Drawing horizontal lines
forward(2)
pencolor("black")
pensize(6)
pendown()
forward(396)
#Return to left side and down
penup()
left(180)
forward(397)
# Move down on left side
left(90)
forward(90)
left(90)
# Drawing horizontal lines
forward(1)
pendown()
forward(396)
#Return to left side and down
penup()
left(180)
forward(397)
# Move down on left side
left(90)
forward(130)
left(90)
# Drawing horizontal lines
forward(-1)
pendown()
pensize(3)
forward(398)
#Return to left side and down
penup()
left(180)
forward(400)
# draw vertical line from 2nd horizontal line
pensize(3.5)
right(90)
forward(130)
right(90)
forward(50)
right(90)
pendown()
forward(130)
# Move up to top position to draw vertical line
penup()
left(180)
forward(388)
right(90)
forward(140)
right(90)
# Draw 2nd vertical line from top to bottom line
pendown()
pensize(4)
forward(387)
# Draw 3rd vertical line from 2nd horizontal line to bottom line
penup()
left(180)
forward(128)
right(90)
# Drawing a blue square
pendown()
fillcolor('blue')
begin_fill()
def square(side_length):
for side in range(4):
forward(side_length)
right(90)
sizes = [105]
for size in sizes:
square(size)
end_fill()
#3rd vertical line
penup()
forward(105)
right(90)
pendown()
forward(128)
left(90)
#Penup moving to fill in yellow rectangle
penup()
left(180)
forward(292)
right(90)
fillcolor('yellow')
begin_fill()
for side in range(2):
forward(126)
right(90)
forward(45)
right(90)
end_fill()
# Fill top left rectangle red
penup()
forward(388)
right(90)
fillcolor('red')
begin_fill()
for side in range(2):
forward(185)
right(90)
forward(166)
right(90)
end_fill()
fillcolor('white')
# Go back to beginning, top left
penup()
pencolor('black')
setposition(-200, 200)
#Draw letters PIET MONDRIAN, ARTIST
left(90)
forward(40)
right(90)
with no_delay():
penup()
back(60)
pendown()
draw_letter_p(25/4)
forward (33)
draw_letter_i(25/4)
penup()
forward (15)
pendown()
draw_letter_e(25/4)
penup()
forward (40)
pendown()
draw_letter_t(25/4)
penup()
forward (40)
pendown()
draw_letter_m(25/4)
penup()
forward (46)
pendown()
draw_letter_o(25/4)
penup()
forward (46)
pendown()
draw_letter_n(25/4)
penup()
forward (46)
pendown()
draw_letter_d(25/4)
penup()
forward (46)
pendown()
draw_letter_r(25/4)
penup()
forward (34)
pendown()
draw_letter_i(25/4)
penup()
forward (13)
pendown()
draw_letter_a(25/4)
penup()
forward (38)
pendown()
draw_letter_n(25/4)
# Go back to beginning, top left of square box
penup()
pencolor('black')
setposition(-200, 200)
#hide and show turtle to make sure lines are butting to each other
hideturtle()
done()