一、课程介绍
本节课将复习函数的相关知识,结合 while 、动画实现一个转动的摩天轮。
二、单词卡
park [pɑːrk] 公园
box [bɑːks] 箱子
draw [drɔː] 画
三、小试牛刀
3.1 源码操作
编写代码,画出一棵松树。
import turtle
p = turtle.Pen()
turtle.bgpic('trunk.gif')
def tree(x, y):
p.penup()
p.goto(x, y)
p.pendown()
p.pencolor('green')
p.begin_fill()
p.fillcolor('green')
for i in range(3):
p.forward(200)
p.left(120)
p.end_fill()
tree(-100,-100)
tree(-100, 0)
tree(-100,100)
p.ht()
turtle.done()
3.2 源码操作
编写代码,实现冰糖葫芦串串转的动画效果。
提示:
1、单根冰糖葫芦的画法:先前进,再画圆,一直重复这个过程,次数取决于要多少课糖葫芦;
每次前进的距离都比上一次前进的距离大5倍(上次的距离乘5),每次画圆的大小都比上一次画圆的大小大5倍(上次的大小乘5);
2、可以定义一个函数 candy 专门画一圈的冰糖葫芦,第一个参数设置糖葫芦颜色,第二个参数设置糖葫芦有多少串(示例中是20串);然后在 while 无限循环中调用这个函数、调整下一次绘制的角度。
四、扩展创作
import turtle
turtle.bgpic('park.gif')
p = turtle.Pen()
p.ht()
turtle.tracer(0)
turtle.addshape('box1.gif')
turtle.addshape('box2.gif')
turtle.addshape('box3.gif')
p.pensize(5)
def draw(n,name):
p.shape(name)
for i in range(n):
p.forward(150)
p.stamp()
p.forward(-150)
p.left(360/n)
turtle.update()
while True:
draw(10,'box1.gif')
p.left(1)
p.clear()
turtle.done()
五、大开脑洞
射箭时,没有箭靶,那就自己做一个吧!
import turtle
p = turtle.Pen()
def target(n,color):
p.dot(n+5,'black')
p.dot(n,color)
target(250,'white')
target(200,'black')
target(150,'blue')
target(100,'red')
target(50,'yellow')
p.ht()
turtle.done()