#-*- coding: utf-8 -*-#@Time : 18-9-14 下午3:23#@Author : Felix Wang
importturtleimportmathdefp_line(t, n, length, angle):"""Draws n line segments."""
for i inrange(n):
t.fd(length)
t.lt(angle)defpolygon(t, n, length):"""Draws a polygon with n sides."""angle= 360 /n
p_line(t, n, length, angle)defarc(t, r, angle):"""Draws an arc with the given radius and angle."""arc_length= 2 * math.pi * r * abs(angle) / 360n= int(arc_length / 4) + 1step_length= arc_length /n
step_angle= float(angle) /n#Before starting reduces, making a slight left turn.
t.lt(step_angle / 2)
p_line(t, n, step_length, step_angle)
t.rt(step_angle/ 2)defpetal(t, r, angle):"""Draws a 花瓣 using two arcs."""
for i in range(2):
arc(t, r, angle)
t.lt(180 -angle)defflower(t, n, r, angle, p):"""Draws a flower with n petals."""
for i inrange(n):
petal(t, r, angle)
t.lt(p/n)defleaf(t, r, angle, p):"""Draws a 叶子 and fill it."""t.begin_fill()#Begin the fill process.
t.down()
flower(t,1, r, angle, p)
t.end_fill()defmain():
window= turtle.Screen() #creat a screen
window.bgcolor("white")
window.title("draw a flower")
lucy=turtle.Turtle()
lucy.shape("turtle")
lucy.color("red")
lucy.width(3)#lucy.speed(10)
#Drawing flower
flower(lucy, 7, 60, 100, 360)#Drawing pedicel
lucy.color("brown")
lucy.rt(90)
lucy.fd(200)#Drawing leaf 1
lucy.width(1)
lucy.rt(270)
lucy.color("green")
leaf(lucy,40, 80, 180)
lucy.rt(140)
lucy.color("black")
lucy.fd(30)
lucy.lt(180)
lucy.fd(30)#Drawing leaf 2
lucy.rt(120)
lucy.color("green")
leaf(lucy,40, 80, 180)
lucy.color("black")
lucy.rt(140)
lucy.fd(30)
lucy.ht()#hideturtle
window.exitonclick()
main()