Turtle graphics is a popular way for introducing programming to kids. It was part of the original Logo programming language developed by Wally Feurzig and Seymour Papert in 1966.
Turtle是Python3的内置模块,位于Lib/turtle.py,所以无需安装,方便实用。
基本步骤 - Basic Steps
引入Turtle模块
1 2 3 4 5
from turtle import * # or import turtle # or import turtle as t
## 九色花 from Rainbow Flower cls = ['red','orange','yellow','green','cyan','blue','purple','khaki','magenta','black']
t.pensize(2) t.pendown() t.setheading(90) len = 1
for petal in range(9): for half in range(2): for i in range(60): if i < 30: t.pencolor(cls[petal]) len += 0.2 else: t.pencolor(cls[petal]) len -= 0.2 t.forward(len) t.left(3) t.left(40)
## 设置随机色 defrandom_color(): R = random.randrange(0,257,10) G = random.randrange(0,257,10) B = random.randrange(0,257,10) t.fillcolor(R,G,B) t.pencolor(int(R/2),int(G/2),int(B/2)) t.colormode(255)
t.shapesize(5,1,1) t.penup() t.goto(0,-100)
## 72*5 for i in range(72): random_color() t.forward(10) t.left(5) ## 只是旋转 不改变画笔方向 t.tilt(15) ## 复制形状 t.stamp() t.mainloop()
import random p = turtle.Pen() p.speed(10) p.penup() p.goto(0, -200) p.setheading(90) p.pensize(7) p.pendown()
## 设置随机色 defrandom_color(): R = random.randrange(0,257,10) G = random.randrange(0,257,10) B = random.randrange(0,257,10) p.fillcolor(R,G,B) p.pencolor(int(R/2),int(G/2),int(B/2)) turtle.colormode(255)
defbranch(plist, len): if (len > 50): list = [] # print(plist) 画笔列表 for p in plist: p.forward(len) for j in range(6): p.forward(len/3) p.back(len/3) p.right(60) p.right(60) list.extend([p]) for k in range(5): q = p.clone() q.left(60*(k+1)) list.extend([q]) print(len) if len*0.55 <=50: for p in list: p.forward(len*0.55) for j in range(6): p.forward(len*0.55/3) p.back(len*0.55/3) p.right(60) p.right(60) print("done!") ## 递归,树枝长为55% branch(list, len * 0.55)