教案:正多边形的性质与循环绘图
教案基本信息
课程名称:Python编程第十二课 正多边形的性质与循环绘图
授课对象:有一定Python基础的学生(已掌握Turtle绘图、循环)
课时安排:45分钟
教学形式:理论讲解 + 实践操作
一、 教学目标
知识与技能:
- 数学知识: 理解正多边形的性质(各边相等,各角相等);掌握正多边形内角、外角计算公式。
- 编程知识:熟练运用for循环简化重复绘图命令。能够根据用户输入的边数动态计算旋转角度并绘制正多边形。
- 理解循环嵌套,绘制稍复杂的组合图形。
过程与方法:
- 经历从特殊(固定边数)到一般(任意边数)的抽象过程,培养数学建模能力。
- 通过参数化绘图,体验程序的可扩展性和灵活性。
情感态度与价值观:
- 感受几何之美与编程之妙的结合,提升学习兴趣。
- 培养通过改变参数探索图形变化规律的科学探究精神。
二、 教学重点与难点
教学重点:正多边形外角公式的应用;使用循环参数化绘制正多边形。
教学难点:理解外角与旋转角度的关系;循环嵌套的逻辑设计与调试。
三、 教学准备
教师:安装Python环境的电脑、投影设备、教学课件。
学生:电脑已安装Python环境,已掌握Turtle基本命令和for循环基础。
四、 教学过程
(一) 复习导入:从固定图形到任意图形(5分钟)
教师活动:
- 复习上节课内容:”上节课我们用循环画了正方形和三角形,代码还记得吗?”
- 展示正方形代码:
python
for i in range(4):
pen.forward(100)
pen.right(90)
3.提出新挑战:”如果我想画正五边形、正六边形,甚至正十二边形,每次都要重新计算角度并修改代码吗?有没有更聪明的方法?”
4.引出主题:”今天我们要让程序变得更’智能’,只需要告诉它边数,它就能自动画出对应的正多边形!”
设计意图: 在已有知识上提出更具一般性的问题,引发认知冲突,激发探究欲望。
(二) 数学探究:正多边形的性质(10分钟)
1. 正多边形的特征
教师引导发现:
正三边形(等边三角形):3条边相等,3个内角都是60°
正四边形(正方形):4条边相等,4个内角都是90°
正五边形:5条边相等,5个内角都是108°
总结规律:正n边形有n条相等的边,n个相等的内角。
2. 关键公式推导
内角和公式: 正n边形的内角和 = (n-2) × 180°
每个内角度数: 每个内角 = (n-2) × 180° ÷ n
外角公式(重点):
每个外角 = 180° – 内角
简化得:每个外角 = 360° ÷ n
几何意义:正n边形的外角和永远等于360°。
3. 与Turtle绘图的联系
重要结论:海龟每次旋转的角度 = 外角度数 = 360° ÷ n
验证实例:
正方形:n=4,旋转角度=360÷4=90° ✓
三角形:n=3,旋转角度=360÷3=120° ✓
(三) 编程实现:参数化绘制正多边形(15分钟)
任务:编写程序,根据用户输入的边数绘制对应的正多边形。
代码实现:
python
import turtle as t
# 创建海龟
pen = t.Turtle()
pen.speed(8)
pen.pensize(2)
# 获取用户输入
n = int(input(“请输入正多边形的边数: “))
length = int(input(“请输入边长: “))
# 计算外角度数(海龟每次旋转的角度)
angle = 360 / n
# 使用循环绘制正多边形
for i in range(n): # 循环n次
pen.forward(length) # 画一条边
pen.right(angle) # 旋转外角度数
t.done()
代码讲解要点:
- n = int(input(…)):将用户输入的字符串转换为整数。
- angle = 360 / n:核心计算公式,根据边数动态确定旋转角度。
- for i in range(n):循环次数与边数一致。
- 参数化设计:通过改变n和length的值,可以绘制任意大小、任意边数的正多边形。
学生实践:分别输入3、5、8、12等不同边数,观察绘制效果。
(四) 常见问题调试(5分钟)
问题1:输入边数1或2,图形异常。
分析:数学上不存在1边形或2边形,需要添加输入验证。
解决方案:
python
if n < 3:
print(“边数不能小于3!”)
else:
# 执行绘图代码
问题2:图形没有闭合。
分析:可能是角度计算错误或循环次数不对。
调试方法:在循环内添加print(i, angle)语句,检查每次循环的参数。
(五) 拓展应用:复杂图形绘制(15分钟)
应用1:绘制同心正多边形
python
# 绘制3个同心正六边形
n = 6 # 六边形
for size in [50, 80, 110]: # 不同的边长
pen.penup()
pen.goto(-size/2, -size/2) # 调整起始位置使图形居中
pen.pendown()
for i in range(n):
pen.forward(size)
pen.right(360/n)
应用2:旋转正多边形图案
python
# 绘制36个旋转的正五边形,形成圆形图案
n = 5 # 五边形
length = 30
for j in range(36): # 外层循环:旋转36次
pen.color([“red”, “blue”, “green”][j % 3]) # 交替使用颜色
for i in range(n): # 内层循环:画一个正五边形
pen.forward(length)
pen.right(360/n)
pen.right(10) # 每个五边形之间旋转10度
应用3:正多边形星星
python
# 绘制正五角星(实际上是正五边形的变体)
pen.color(“gold”)
for i in range(5):
pen.forward(100)
pen.right(144) # 180 – 36 = 144度
(六) 课堂练习与作业(5分钟)
课堂练习:
- 绘制一个正八边形,边长为60像素。
- 绘制3个同心的正三角形,边长分别为40、80、120。
作业:
- 基础题: 改进正多边形绘图程序,增加颜色选择功能,让用户可以选择图形的颜色。
- 挑战题: 编写程序绘制”万花尺”图案。提示:在一个大圆内滚动一个小圆,跟踪小圆上某点的轨迹。
五、 板书设计
主标题: 正多边形的性质与循环绘图
核心公式:
外角度数 = 360° ÷ 边数
旋转角度 = 外角度数
循环次数 = 边数
代码模板:
python
n = int(input(“边数: “))
angle = 360 / n
for i in range(n):
forward(边长)
right(angle)
数学关系表:
| 边数 | 内角 | 外角 | 旋转角 |
| 3 | 60° | 120° | 120° |
| 4 | 90° | 90° | 90° |
| 5 | 108° | 72° | 72° |
| 6 | 120° | 60° | 60° |
| n | (n-2)×180°/n | 360°/n | 360°/n |