教案:平面直角坐标系与Turtle绘图
教案基本信息
课程名称:Python编程第十课 平面直角坐标系与Turtle绘图
授课对象:有一定Python基础的学生(已掌握变量、输入输出、基本运算)
课时安排:45分钟
教学形式:理论讲解 + 实践操作
一、 教学目标
知识与技能:
- 数学知识: 巩固平面直角坐标系的概念,理解点的坐标表示(x, y)。
- 编程知识:掌握导入Turtle绘图模块的方法。学会设置画布大小和坐标系。掌握海龟的基本移动命令(前进、后退、转向、抬笔、落笔)。能够指挥海龟移动到指定坐标点并画点。
过程与方法:
- 通过可视化的绘图操作,将抽象的数学坐标转化为具体的图形位置,建立数形结合的思想。
- 经历“构思-编码-调试-观察”的完整绘图过程。
情感态度与价值观:
- 感受编程绘图的趣味性和创造性,激发学习热情。
- 培养空间想象能力和严谨的坐标思维。
二、 教学重点与难点
教学重点: Turtle模块的基本移动命令;使用goto()方法移动到指定坐标。
教学难点: 理解Turtle坐标系与数学坐标系的对应关系;协调使用抬笔、落笔控制绘图。
三、 教学准备
教师: 安装Python环境的电脑、投影设备、教学课件。
学生: 电脑已安装Python环境(标准库已包含Turtle模块)。
四、 教学过程
(一) 情景导入:从数学坐标到编程绘图(5分钟)
教师活动:
- 在黑板上画出平面直角坐标系,标出点A(100, 50)和点B(-50, -80)。
- 提问:“在数学课上,我们可以轻松地在坐标系中标出这些点。如果我想让计算机在屏幕上自动画出这些点,该怎么办?”
- 展示用Turtle绘图的效果图(一个窗口,海龟移动到指定位置画点)。
- 引出主题:“Python有一个强大的‘小海龟’绘图工具,它就像一个机器人画家,今天我们就学习如何指挥它,在坐标系中精确绘图。”
设计意图:创设任务情境,将抽象的数学问题转化为有趣的编程任务,激发求知欲。
(二) 新知探究:认识Turtle绘图(20分钟)
1. 导入模块与创建海龟
教师讲解:使用Turtle库的第一步是把它“请”到我们的程序里。
代码示例:
python
# 导入turtle模块,并给它起个简单的别名‘t’
import turtle as t
# 创建一个海龟对象,我们给它取名叫‘pen’(画笔)
pen = t.Turtle()
# 可选:隐藏海龟的箭头形状,让它只留下画笔的痕迹
pen.hideturtle()
2. 设置画布(Canvas)
教师讲解:画布就是海龟绘画的舞台。我们可以设置它的大小和标题。
代码示例:
python
# 设置画布大小(宽, 高)和背景颜色
t.setup(width=800, height=600) # 创建一个800×600像素的窗口
t.bgcolor(“lightblue”) # 设置背景色为浅蓝色
t.title(“我的直角坐标系”) # 设置窗口标题
介绍Turtle默认坐标系:
屏幕中心是原点(0, 0)。
向右是x轴正方向。
向上是y轴正方向。
这与数学上的平面直角坐标系完全一致。
3. 海龟的基本移动命令
教师讲解:指挥海龟运动的基本命令。
命令列表(板书):
| 命令 | 功能 | 示例 |
| forward(d) 或 fd(d) | 向前移动d像素 | pen.fd(100) |
| backward(d) 或 bk(d) | 向后移动d像素 | pen.bk(100) |
| right(angle) 或 rt(angle) | 向右转angle度 | pen.rt(90) |
| left(angle) 或 lt(angle) | 向左转angle度 | pen.lt(90) |
| goto(x, y) | 移动到绝对坐标(x, y) | pen.goto(100, 50) |
| penup() 或 pu() | 抬笔(移动时不画线) | pen.penup() |
| pendown() 或 pd() | 落笔(移动时画线) | pen.pendown() |
| dot(size, color) | 在当前位置画一个点 | pen.dot(10, “red”) |
示例:绘制一条折线
python
pen.pendown() # 落笔,开始画线
pen.fd(100) # 画一条100像素的横线
pen.lt(90) # 左转90度
pen.fd(50) # 画一条50像素的竖线
(三) 核心任务:移动到指定坐标并画点(10分钟)
任务:在坐标系中画出点A(100, 50)和点B(-50, -80)。
教师引导分析步骤:
- 抬笔,移动到A点。
- 落笔,在A点画一个红色的点。
- 抬笔,移动到B点。
- 落笔,在B点画一个蓝色的点。
代码实现:
python
import turtle as t
pen = t.Turtle()
pen.hideturtle()
pen.speed(10) # 设置海龟移动速度(1-10,10最快)
# 画点A(100, 50)
pen.penup() # 抬笔,移动时不画线
pen.goto(100, 50) # 移动到坐标(100, 50)
pen.pendown() # 落笔,准备画图
pen.dot(10, “red”) # 画一个大小为10像素的红色圆点
pen.write(“A(100,50)”, font=(“Arial”, 12, “normal”)) # 在点旁边写上标签
# 画点B(-50, -80)
pen.penup()
pen.goto(-50, -80)
pen.pendown()
pen.dot(10, “blue”)
pen.write(“B(-50,-80)”, font=(“Arial”, 12, “normal”))
# 保持窗口打开,直到用户关闭它
t.done()
关键技巧强调:
penup()和pendown()的配合使用,是实现“移动到某处再画图”的关键。
goto(x, y)是精确定位的核心命令。
t.done()让图形窗口保持打开状态。
(四) 综合应用:绘制坐标系和点(10分钟)
任务:绘制一个更完整的坐标系,并标出几个点。
代码示例(绘制简单的坐标轴):
python
# … (前面代码同上,导入和初始化海龟)
# 绘制x轴
pen.penup()
pen.goto(-300, 0) # 移动到画布左侧
pen.pendown()
pen.goto(300, 0) # 画一条水平线作为x轴
pen.write(“x”, font=(“Arial”, 14, “normal”))
# 绘制y轴
pen.penup()
pen.goto(0, -200) # 移动到画布底部
pen.pendown()
pen.goto(0, 200) # 画一条垂直线作为y轴
pen.write(“y”, font=(“Arial”, 14, “normal”))
# 画原点
pen.penup()
pen.goto(0, 0)
pen.pendown()
pen.dot(8, “black”)
pen.write(“O(0,0)”, font=(“Arial”, 10, “normal”))
# 现在再画点A和点B…
# … (接上面的画点代码)
t.done()
(五) 课堂练习与巩固(10分钟)
练习1:绘制三角形
任务:已知三角形的三个顶点坐标为A(-100, 0), B(0, 150), C(100, 0)。编写程序,指挥海龟依次走到这三个点,并连接成一个三角形。
提示:使用goto()命令依次移动到各点,并使用pendown()保持画笔落下。
练习2:绘制函数图像上的点
任务:在坐标系中画出函数y = x² 在x从-5到5之间,整数x对应的点。例如(-5,25), (-4,16), … (5,25)。
提示:可以使用for循环遍历x的值,计算y=x*x,然后用goto(x, y)和dot()画点。
(六) 课堂小结与作业(5分钟)
小结:
- Turtle坐标系:与数学坐标系一致,中心为原点(0,0)。
- 核心命令:
import turtle:导入模块。
goto(x, y):精确定位。
penup()/pendown():控制是否画线。
dot():画点。
t.done():保持窗口。
3.绘图流程:抬笔→移动→落笔→绘图。
作业:
- 基础题: 绘制一个边长为100的正方形,中心位于坐标原点(0,0)。
- 挑战题: 绘制一个由点组成的圆形。提示:利用圆的参数方程(x = r * cos(θ), y = r * sin(θ)),用循环改变角度θ,计算每个点的坐标并绘制。
五、 板书设计
主标题:Turtle绘图与平面直角坐标系
Turtle坐标系:
原点(0,0):屏幕中心
X轴:向右为正
Y轴:向上为正
核心命令清单:
goto(x, y)
penup() / pendown()
dot(size, color)
forward(d), right(angle)
绘图范式:
python
pen.penup()
pen.goto(x, y)
pen.pendown()
pen.dot(10, “red”)