project_drawing/shapes.py

110 lines
2.5 KiB
Python

from turtle import *
from math import sqrt
from superturt import *
def draw_leaf(size, color):
pencolor('black')
fillcolor(color)
begin_fill()
circle(size,90)
right(270)
circle(.75*size,90)
circle(-.25*size,90)
end_fill()
def draw_leaves(color):
with restore_state_when_finished():
for number in range(11):
draw_leaf(20, color)
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, color):
angles = [150, 150, 150, 150, 150, 150, 90]
for angle in angles:
branch_end_wl(size, color)
circle(size/8,angle)
draw_leaves(color)
def tip_nl(size):
forward(size)
right(45)
forward(size/10)
right(90)
forward(size/10)
right(45)
forward(size)
def tip_wl(size, color):
tip_nl(size)
draw_leaves(color)
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, color):
branching_nl(ang1, d1, ang2, d2, ang3)
draw_leaves(color)
def branch_end_wl(size, color):
for number in range(3):
forward(size)
draw_leaves(color)
forward(size)
right(300)
tip_wl(size, color)
branching_wl(240,size,330,size,330, color)
tip_wl(size, color)
branching_wl(30,size,240,size,30, color)
tip_wl(size, color)
branching_wl(330,size,330,size,240, color)
tip_wl(size, color)
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)
end_fill()
def draw_tree_wl(size, color):
penup()
circle(size/4,90)
draw_trunk(size)
draw_branch_wl(size, color)
forward(10*size)
circle(size/4,90)