一、课程介绍
本节课将通过修改画笔的外形,创作一些有趣的作品。
二、知识重难点解析
画笔外形
shape()
画笔调用 shape() 方法,可以设置画笔“外形”,默认是 classic ,其他形状如下:
如:
import turtle
p = turtle.Pen()
p.shape('circle') # 画笔设置成“圆”外形
turtle.done()
添加外形
addshape()
要将画笔设置成自己想要的外形,需要提供一张gif格式的图片,用 turtle 调用 addshape() 方法,将这张gif图片添加到 turtle 外形表中,画笔才能调用 shape() 方法将其外形设置成这张图片的模样。
import turtle turtle.addshape('fish.gif') # 将“fish”添加到外形表
p = turtle.Pen() p.shape('fis.gif') # 将画笔外形设成“fish”*
turtle.done()
显示&隐藏画笔
showturtle() 或 st():
显示画笔,使画笔变成可见状态。
showturtle() 方法可简写为 st()。
hideturtle() 或 ht():
隐藏画笔,使画笔不可见。
hideturtle() 方法可简写为 ht()。
三、单词卡
shape [ʃeɪp] 外形
show [ʃoʊ] 显示
fish [fɪʃ] 鱼
heart [hɑːrt] 心
四、小试牛刀
4.1 源码操作
编写代码实现小女孩奔月的效果。
### 代码 ###
import turtle
p = turtle.Pen()
p.penup()
p.forward(250)
p.left(90)
p.forward(210)
p.dot(200, 'gold')
p.left(135)
p.forward(600)
turtle.addshape('facebook4.png')
p.shape('facebook4.png')
for i in range(600):
p.forward(-1)
turtle.done()
4.2 源码操作
实现一个火柴人发射火球的效果。
import turtle
p = turtle.Pen()
p.penup()
p.forward(-300)
p.pendown()
p.dot(100)
p.right(90)
p.forward(200)
p.right(45)
p.forward(100)
p.forward(-100)
p.left(90)
p.forward(100)
p.forward(-100)
p.right(45)
p.forward(-100)
p.left(90)
p.forward(100)
p.left(90)
p.forward(25)
p.forward(-50)
p.forward(25)
p.right(90)
p.penup()
p.forward(30)
turtle.addshape('fireball.gif')
p.shape('fireball.gif')
for i in range(500):
p.forward(1)
turtle.done()
4.3 源码操作
实现一个火柴人不断发射火球和冰球的效果。
提示:
- 绘制时注意火球和冰球的发射间隔;
- 火球:fireball.gif;
- 冰球:iceball.gif。
### 代码~ ###
import turtle
p = turtle.Pen()
p.penup()
p.forward(-300)
p.pendown()
p.dot(100)
p.right(90)
p.forward(200)
p.right(45)
p.forward(100)
p.forward(-100)
p.left(90)
p.forward(100)
p.forward(-100)
p.right(45)
p.forward(-100)
p.left(90)
p.forward(100)
p.left(90)
p.forward(25)
p.forward(-50)
p.forward(25)
p.right(90)
p.penup()
p.forward(30)
for i in range(50):
turtle.addshape('fireball.gif')
p.shape('fireball.gif')
p.forward(500)
p.ht()
p.forward(-500)
turtle.addshape('iceball.gif')
p.shape('iceball.gif')
p.st()
p.forward(500)
p.ht()
p.forward(-500)
p.st()
turtle.done()
五、扩展练习
### 代码 ###
import turtle
p=turtle.Pen()
turtle.bgpic("阿短和编程猫.gif")
turtle.addshape("heart.gif")
p.shape("heart.gif")
p.penup()
for i in range(10):
p.forward(200)
p.ht()
p.forward(-200)
p.st()
turtle.done()
六、自由发挥
画一只到处走的小乌龟吧~
import turtle
p=turtle.Pen()
p.shape('turtle')
p.penup()
p.forward(300)
p.right(180)
p.forward(200)
p.right(90)
p.forward(50)
turtle.done()