Python Turtle有趣的作品
Python Turtle有趣的作品
-
- 笑脸
- 抽象画
- 星空
- 雪
- 樱花
笑脸
emotions.py
import turtledef draw_circle(x_position, y_position, t_radius, t_angle, t_color):turtle.up()turtle.setpos(x_position,y_position)turtle.down()turtle.begin_fill()turtle.circle(t_radius,t_angle)turtle.color(t_color)turtle.end_fill()turtle.shape('turtle')#画脸turtle.left(90)draw_circle(200,0,200,360,'yellow')#画眼睛draw_circle(-20,100,30,360,'black')draw_circle(80,100,30,360,'black')#画眼睛draw_circle(-20,100,30,180,'white')turtle.lt(180)draw_circle(80,100,30,180,'white')turtle.lt(180)#画脸颊draw_circle(-80,-20,50,360,'pink')draw_circle(180,-20,50,360,'pink')#画嘴turtle.seth(-120)turtle.up()turtle.pencolor('black')turtle.setpos(80,-90)turtle.down()turtle.circle(-90,120)turtle.hideturtle()turtle.done()
抽象画
picture.py
import turtleimport randompen = turtle.Turtle()pen.shape('turtle')paper = turtle.Screen()# pen.speed(0)paper.tracer(0)x = -200y = 200size = 20for b in range(20): pen.goto(x,y) y -= size for a in range(20): # 大正方形 pen.color(random.random(), random.random(), random.random()) pen.begin_fill() for j in range(4): pen.forward(size) pen.left(90) pen.end_fill() # 新的起笔位置 pen.penup() pen.forward(size / 4) pen.left(90) pen.forward(size / 4) pen.right(90) pen.pendown() # 小正方形 pen.color(random.random(), random.random(), random.random()) pen.begin_fill() for j in range(4): pen.forward(size / 2) pen.left(90) pen.end_fill() #回到初始位置 pen.penup() pen.forward(-size / 4) pen.left(90) pen.forward(-size / 4) pen.right(90) pen.pendown() #让海龟走到下一个位置 pen.penup() pen.forward(size) pen.pendown()pen.penup()pen.ht()pen.goto(0,-230)pen.write('Thousands Eyes',align='center',font=('楷体',30,'normal'))pen.goto(0,-270)pen.write('$999999999999',align='center',font=('楷体',30,'normal'))paper.update() # 更新画布turtle.done()
星空
star_night.py
import turtleimport randompen=turtle.Turtle()paper=turtle.Screen()#pen.speed(0)paper.tracer(0)paper.screensize(1280,1024,'black')for b in range(200): pen.begin_fill() pen.fillcolor('yellow') X=random.random()*20 for a in range(5): pen.forward(X) pen.left(72) pen.forward(X) pen.right(144) pen.penup() pen.goto(random.random()*1280-640,random.random()*1024-512) pen.left(random.randint(0,360)) pen.pendown() pen.end_fill() paper.update()turtle.done()
雪
snow.py
import turtleimport randompen=turtle.Turtle()pen.shape('turtle')paper=turtle.Screen()paper.bgcolor('light blue1')#pen.speed(0)paper.tracer(0)def koch(size,n): if n==0: pen.forward(size) else: for angel in [0,60,-120,60]: pen.left(angel) koch(size/3,n-1)for i_snow in range(100): pen.penup() pen.setx(random.randint(-500,500)) pen.sety(random.randint(-500,500)) pen.pendown() size_snow=random.randint(10,50) pen.begin_fill() pen.color('white') for i in range(3): koch(size_snow,4) pen.right(120) pen.end_fill()pen.penup()pen.ht()pen.goto(0,-360)pen.color('gray23')pen.write('SNOW FLOWERS',align='center',font=('楷体',30,'normal'))pen.penup()pen.ht()pen.goto(0,-400)pen.color('gray23')pen.write('Snow',align='left',font=('楷体',20,'normal'))pen.hideturtle()paper.update()turtle.done()
樱花
sakura.py
import turtle as Timport randomimport time# 画樱花的躯干(60,t)def Tree(branch, t): time.sleep(0.0005) if branch > 3: if 8 <= branch <= 12: if random.randint(0, 2) == 0: t.color('snow') # 白 else: t.color('lightcoral') # 淡珊瑚色 t.pensize(branch / 3) elif branch < 8: if random.randint(0, 1) == 0: t.color('snow') else: t.color('lightcoral') # 淡珊瑚色 t.pensize(branch / 2) else: t.color('sienna') # 赭(zhě)色 t.pensize(branch / 10) # 6 t.forward(branch) a = 1.5 * random.random() t.right(20 * a) b = 1.5 * random.random() Tree(branch - 10 * b, t) t.left(40 * a) Tree(branch - 10 * b, t) t.right(20 * a) t.up() t.backward(branch) t.down()# 掉落的花瓣def Petal(m, t): for i in range(m): a = 200 - 400 * random.random() b = 10 - 20 * random.random() t.up() t.forward(b) t.left(90) t.forward(a) t.down() t.color('lightcoral') # 淡珊瑚色 t.circle(1) t.up() t.backward(a) t.right(90) t.backward(b)# 绘图区域t = T.Turtle()# 画布大小w = T.Screen()t.hideturtle() # 隐藏画笔t.getscreen().tracer(5, 0)w.screensize(bg='wheat') # wheat小麦t.left(90)t.up()t.backward(150)t.down()t.color('sienna')# 画樱花的躯干Tree(60, t)# 掉落的花瓣Petal(200, t)w.exitonclick()