上节课学会了给画笔换粗细和颜色,但画出来的图形都是空心的——只有边框,里面是空的。这节课我们学一个超酷的功能:给图形填色!
一、今天学什么?
学会三个新命令,让图形从「空心」变成「实心」:
-
fillcolor() — 设置填充颜色-
begin_fill() — 开始填色(画之前调用)-
end_fill() — 结束填色(画完之后调用)-
简单记:先设颜色 → 开始填 → 画图形 → 结束填
二、新命令速查
| 命令 | 作用 | 示例 |
t.fillcolor("颜色") | 设置填充颜色 | t.fillcolor("red") |
t.begin_fill() | 开始记录要填色的图形 | t.begin_fill() |
t.end_fill() | 结束记录,自动填色 | t.end_fill() |
三、填色三步法
填色就像给图案涂颜色,分三步:
# 第1步:设置填充颜色
t.fillcolor("red")
# 第2步:开始填色
t.begin_fill()
# ↓ 这里画你的图形 ↓
t.forward(100)
t.left(90)
t.forward(100)
t.left(90)
t.forward(100)
t.left(90)
t.forward(100)
t.left(90)
# 第3步:结束填色(自动把颜色填进去)
t.end_fill()💡 关键:begin_fill() 和 end_fill() 必须成对出现,就像括号一样!
四、实战1:填色正方形 🔴
把上节课的正方形填上红色:
import turtle
t = turtle.Turtle()
t.speed(3)
t.fillcolor("red") # 设置填充色为红色
t.begin_fill() # 开始填色
for i in range(4): # 画正方形
t.forward(100)
t.left(90)
t.end_fill() # 结束填色
turtle.done()运行后你会看到一个实心红色正方形!🟥
五、边框颜色 vs 填充颜色
pencolor 和 fillcolor 是独立的!可以分别设置:
import turtle
t = turtle.Turtle()
t.speed(3)
t.pensize(3)
# 蓝色边框 + 黄色填充
t.pencolor("blue") # 边框颜色:蓝色
t.fillcolor("yellow") # 填充颜色:黄色
t.begin_fill()
for i in range(4):
t.forward(100)
t.left(90)
t.end_fill()
turtle.done()效果:一个蓝色边框的黄色正方形!🟨
💡 就像画画一样:先用铅笔勾线(pencolor),再用水彩涂色(fillcolor)!
六、实战2:填色三角形 🟢
三角形也可以填色:
import turtle
t = turtle.Turtle()
t.speed(3)
t.pensize(3)
t.pencolor("darkgreen") # 深绿色边框
t.fillcolor("lightgreen") # 浅绿色填充
t.begin_fill()
for i in range(3): # 等边三角形
t.forward(120)
t.left(120)
t.end_fill()
turtle.done()一个清新的绿色三角形!🟩
七、实战3:填色圆形 🔵
circle() 画的圆也能填色:
import turtle
t = turtle.Turtle()
t.speed(3)
t.pensize(3)
t.pencolor("darkblue") # 深蓝色边框
t.fillcolor("skyblue") # 天蓝色填充
t.begin_fill()
t.circle(60) # 半径60的圆
t.end_fill()
turtle.done()一个漂亮的天空蓝圆!🔵
八、实战4:交通信号灯 🚦
把三种图形组合起来,画一个交通信号灯:
import turtle
t = turtle.Turtle()
t.speed(5)
# 画灯柱
t.penup()
t.goto(-20, -80)
t.pendown()
t.fillcolor("gray")
t.begin_fill()
for i in range(2):
t.forward(40)
t.left(90)
t.forward(220)
t.left(90)
t.end_fill()
# 红灯
t.penup()
t.goto(0, -50)
t.pendown()
t.fillcolor("red")
t.begin_fill()
t.circle(20)
t.end_fill()
# 黄灯
t.penup()
t.goto(0, 10)
t.pendown()
t.fillcolor("yellow")
t.begin_fill()
t.circle(20)
t.end_fill()
# 绿灯
t.penup()
t.goto(0, 70)
t.pendown()
t.fillcolor("green")
t.begin_fill()
t.circle(20)
t.end_fill()
turtle.done()🚦 红灯停、绿灯行、黄灯等一等!
九、小挑战
试试这些挑战:
-
- 🟢 简单:画一个填色的五角星(提示:用第1节课的星形代码 + 填色)
-
- 🟡 中等:画一面旗帜(长方形填红色 + 长方形填黄色当星星)
-
- 🔴 困难:画一串彩色气球(多个填色圆 + 细线)
-
十、下期预告
今天学会了填色,但每次画图前都要手动移到新位置,有点麻烦。下节课我们学抬笔和落笔——让海龟可以「飞」到新位置再开始画!
下期:《turtle第4课:抬笔与落笔》
有问题欢迎留言!