generated from mwc/lab_iteration
78 lines
1.5 KiB
Python
78 lines
1.5 KiB
Python
from turtle import *
|
|
|
|
def draw_tile(size):
|
|
"Draws one tile, which can be repeated to form a pattern."
|
|
draw_tile_outline(size)
|
|
draw_design(size)
|
|
|
|
def draw_tile_outline(size):
|
|
pencolor("#dddddd")
|
|
square(size)
|
|
|
|
def draw_design(size):
|
|
|
|
pencolor("blue")
|
|
|
|
"draw a corner square 1/4 the size of the tile"
|
|
for i in range(4):
|
|
forward (size/4)
|
|
left (90)
|
|
forward (size/4)
|
|
left (90)
|
|
forward (size/4)
|
|
left (90)
|
|
forward (size/4)
|
|
left (90)
|
|
forward (size)
|
|
left (90)
|
|
|
|
"move to the top of the diamond"
|
|
left (90)
|
|
forward (size*3.5/4)
|
|
penup()
|
|
right(90)
|
|
forward (size/2)
|
|
right(45)
|
|
pendown()
|
|
"draw red diamond"
|
|
pencolor("red")
|
|
forward (size/2)
|
|
right(90)
|
|
forward (size/2)
|
|
right(90)
|
|
forward (size/2)
|
|
right(90)
|
|
forward (size/2)
|
|
penup()
|
|
"reset pen"
|
|
left(45)
|
|
forward (size/2)
|
|
right (180)
|
|
forward(size+size/4+size/8)
|
|
right(90)
|
|
forward (size/2)
|
|
right (180)
|
|
pendown()
|
|
|
|
|
|
|
|
def fly(distance):
|
|
"Moves without drawing."
|
|
penup()
|
|
forward(distance)
|
|
pendown()
|
|
|
|
def square(size):
|
|
"Draws a square of side length `size`"
|
|
for side in range(4):
|
|
forward(size)
|
|
left(90)
|
|
|
|
def quarter_arc_right(radius):
|
|
"Draws a quarter of an arc, turning to the right."
|
|
circle(-radius, 90)
|
|
|
|
def quarter_arc_left(radius):
|
|
"Draws a quarter of an arc, turning to the left."
|
|
circle(radius, 90)
|