project_drawing/shapes.py

114 lines
2.4 KiB
Python

from turtle import *
from math import sqrt
from superturt import *
def draw_leaf(size):
pencolor('black')
# fillcolor('green')
# begin_fill()
circle(size,90)
right(270)
circle(.75*size,90)
circle(-.25*size,90)
# end_fill()
def draw_leaves():
with restore_state_when_finished():
for number in range(11):
draw_leaf(20)
penup()
forward(10)
right(115)
pendown()
def draw_trunk(size):
forward(10*size)
circle(size/8,90)
def draw_branch_nl(size):
angles = [150, 150, 150, 150, 150, 150, 90]
for angle in angles:
branch_end_nl(size)
circle(size/8,angle)
def draw_branch_wl(size):
angles = [150, 150, 150, 150, 150, 150, 90]
for angle in angles:
branch_end_wl(size)
circle(size/8,angle)
draw_leaves()
def tip_nl(size):
forward(size)
right(45)
forward(size/10)
right(90)
forward(size/10)
right(45)
forward(size)
def tip_wl(size):
tip_nl(size)
draw_leaves()
def branching_nl(ang1, d1, ang2, d2, ang3):
right(ang1)
forward(d1)
right(ang2)
forward(d2)
right(ang3)
def branching_wl(ang1, d1, ang2, d2, ang3):
branching_nl(ang1, d1, ang2, d2, ang3)
draw_leaves()
def branch_end_wl(size):
for number in range(3):
forward(size)
draw_leaves()
forward(size)
right(300)
tip_wl(size)
branching_wl(240,size,330,size,330)
tip_wl(size)
branching_wl(30,size,240,size,30)
tip_wl(size)
branching_wl(330,size,330,size,240)
tip_wl(size)
right(300)
forward(4*size)
def branch_end_nl(size):
forward(4*size)
right(300)
tip_nl(size)
branching_nl(240,size,330,size,330)
tip_nl(size)
branching_nl(30,size,240,size,30)
tip_nl(size)
branching_nl(330,size,330,size,240)
tip_nl(size)
right(300)
forward(4*size)
def draw_tree_nl(size):
fillcolor('brown')
begin_fill()
circle(size/4,90)
draw_trunk(size)
draw_branch_nl(size)
forward(10*size)
circle(size/4,90)
right(180)
forward(2*size)
end_fill()
def draw_tree_wl(size):
penup()
circle(size/4,90)
draw_trunk(size)
draw_branch_wl(size)
forward(10*size)
circle(size/4,90)
right(180)
forward(2*size)