花朵是由若干花瓣组成的,最简单的花瓣是由两段圆弧组成的。需要先解决如何画一段圆弧,然后就能画出一片花瓣,再然后就能画出花朵了。绘制圆弧
import turtle
import mathdef polyline(t, n, length, angle): #绘制多边线t._delay = 10 #设置乌龟的爬行速度for i in range(n):t.fd(length)t.lt(angle)def arc(t,r,angle):arc_length=2 * math.pi * r *angle / 360.0n=int(arc_length / 3)+1step_length=arc_length / n #确定步长step_angle = float(angle) / n #确定每次的偏角polyline(t, n, step_length, step_angle)def petal(t, r, angle):"""用两段圆弧绘制一片花瓣t: Turtler: radius of the arcsangle: angle (degrees) that subtends the arcs"""for i in range(2):arc(t, r, angle)t.lt(180-angle) def flower(t, n, r, angle):"""Draws a flower with n petals.t: Turtlen: number of petalsr: radius of the arcsangle: angle (degrees) that subtends the arcs"""for i in range(n):petal(t, r, angle)t.lt(360.0/n)def move(t, length):"""Move Turtle (t) forward (length) units without leaving a trail.Leaves the pen down."""t.pu() #笔朝上,走过的轨迹不要显示t.fd(length)t.pd()def main():bob=turtle.Turtle() #turtle模块提供了一个叫作Turtle的函数,用于创建一个Turtle对象# draw a sequence of three flowers, as shown in the book.move(bob, -100)flower(t=bob, n=7, r=60.0, angle=60.0)move(t=bob, length=100)flower(t=bob, n=10, r=40.0, angle=80.0)move(t=bob, length=100)flower(t=bob, n=20, r=140.0, angle=20.0)bob.hideturtle()turtle.done()return "Done!"if __name__ =='__main__':main()
本程序在VS2017下运行通过