📖 学员手册
代码讲解已合并到高亮预览的代码注释里
第三课:魔法画笔觉醒 - 点亮坐标雷达
40 分钟 | Level 1 | +100 EXP
今天的任务
第二课的第 4 关和第 5 关还没有来得及讲完,今天先把它们补成作品:
- 第 4 关:十字准星
- 第 5 关:坐标网格扫描
完成后,我们会解锁魔法画笔,把普通坐标雷达升级成魔法护盾雷达。
记住今天的升级路线:
python
坐标雷达 -> 彩色雷达 -> 光束雷达 -> 魔法护盾雷达你将学会
| 技能 | 用途 | 记忆口诀 |
|---|---|---|
pencolor() | 改变线条颜色 | 线条换衣服 |
width() / pensize() | 改变线条粗细 | 光束变粗细 |
fillcolor() | 设置填充颜色 | 先选护盾颜色 |
begin_fill() / end_fill() | 给闭合图形填色 | 开始注入 -> 完成封印 |
| 颜色变量 | 改一个变量,整套作品换皮肤 | 一个开关控制一片颜色 |
第 1 关:作业回收 - 十字准星
直接运行第 1 关,看到一竖一横两条蓝色线交叉在中心。
重点代码:
python
turtle.pencolor('#4F8CFF')
turtle.width(3)
turtle.penup()
turtle.goto(0, 150)
turtle.pendown()
turtle.goto(0, -150)
turtle.penup()
turtle.goto(-150, 0)
turtle.pendown()
turtle.goto(150, 0)要记住:
goto(0, 150):去到上方goto(0, -150):画到下方penup():飞过去,不画线pendown():落笔,开始画线
关键问题:为什么画横线前要 penup()?
答案:如果不提笔,goto() 会从当前位置连过去,多出一条斜线。
第 2 关:作业回收 - 坐标网格扫描
去注释第 2 关,运行后看到:
- 6 条竖线
- 6 条横线
- 16 个金色能量节点
重点代码:
python
for x in [-150, -90, -30, 30, 90, 150]:
turtle.penup()
turtle.goto(x, -150)
turtle.pendown()
turtle.goto(x, 150)要记住:x 每换一个数字,就画一条新的竖线。
python
for y in [-150, -90, -30, 30, 90, 150]:
turtle.penup()
turtle.goto(-150, y)
turtle.pendown()
turtle.goto(150, y)要记住:y 每换一个数字,就画一条新的横线。
python
for x in [-90, -30, 30, 90]:
for y in [-90, -30, 30, 90]:
turtle.goto(x, y)
turtle.dot(10, node_color)要记住:双层循环就像“行和列一起扫描”,每个交叉点放一个能量节点。
第 3 关:换色魔法
重点代码:
python
main_color = '#00E5FF'
second_color = '#8A5DFF'
turtle.pencolor(main_color)要记住:
main_color:主网格颜色second_color:副网格颜色pencolor():只改变之后画出来的线
试试看把 main_color 改成 'red'、'cyan'、'#3DDC97'。
第 4 关:粗细魔法
重点代码:
python
beam_size = 4
turtle.width(beam_size)要记住:
width(1):细线width(4):明显的光束width(8):强力激光
把 beam_size 改成 2、6、8,观察准星光束的变化。
第 5 关:填充护盾 + 变量控制台
重点代码:
python
shield_color = '#7CFFCB'
turtle.fillcolor(shield_color)
turtle.begin_fill()
turtle.circle(95)
turtle.end_fill()填充口诀:
fillcolor():选护盾颜色begin_fill():开始注入能量circle(95):画出护盾形状end_fill():完成封印,颜色填进去
如果护盾没有颜色,通常是忘了 begin_fill() 或 end_fill()。
我的变量控制台
python
main_color = '#00E5FF'
second_color = '#8A5DFF'
shield_color = '#7CFFCB'
node_color = 'gold'
beam_size = 4你可以这样改:
main_color:改主网格颜色second_color:改副网格颜色shield_color:改护盾颜色node_color:改能量节点颜色beam_size:改光束粗细
课后作业:我的魔法护盾雷达
要求:
- 有坐标网格
- 有十字准星
- 至少 3 种颜色
- 至少 1 个填充护盾
- 使用
main_color控制主色
提交步骤:
- 在
/lab/s1/l3运行第 5 关 - 修改颜色变量,做出专属版本
- 截图保存
- 送进 AI 进化舱
- 发布到作品广场
推荐标题:我的魔法护盾雷达
检查清单
| 项目 | 完成 |
|---|---|
| 十字准星截图 | ☐ |
| 坐标网格截图 | ☐ |
| 魔法护盾雷达截图 | ☐ |
| AI 进化海报 | ☐ |
| 发布作品广场 | ☐ |
Ctrl+/ 注释 · ▶ 运行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
点击 ▶ 运行或按 Ctrl+Enter
预览区(HTML / turtle 输出)
📋 任务卡
1补完十字准星
第二课作业第4关:一竖一横交叉在原点。注意中间要 penup 再跳到横线起点。
💡直接运行+10 XP
2补完坐标网格
第二课作业第5关:6条竖线 + 6条横线 + 16个金色节点,完成定位雷达。
💡Ctrl+/ 去注释第2关+10 XP
3换色魔法
用 turtle.pencolor() 把普通雷达线升级成能量蓝/能量紫。
💡改 main_color+10 XP
4粗细魔法
pensize/width 控制光束粗细。数值越大,准星越像魔法激光。
💡改 beam_size+10 XP
5填充护盾
fillcolor + begin_fill + end_fill 给雷达加护盾。改变量即可换整套皮肤。
💡去注释第5关+10 XP
🎁 完成全部 +30 XP
加载中
▶▼ 🧩 扩展
📦numpy
📦matplotlib
📦pillow
📦requests
📦sympy
📦pandas
📦scipy
📦beautifulsoup4
📦pygame
📦flask
📦opencv-python
📦nltk
📦sqlalchemy
📦plotly