教案:图形的组合与变换
教案基本信息
课程名称:Python编程第十三课 图形的组合与变换
授课对象:有一定Python基础的学生(已掌握基础Turtle绘图、循环)
课时安排:45分钟
教学形式:理论讲解 + 实践操作
一、 教学目标
知识与技能:
- 数学知识: 理解图形平移、旋转、缩放等变换概念;认识同心、对称等几何关系。
- 编程知识:掌握嵌套循环在复杂图形绘制中的应用。学会使用Turtle的色彩填充功能(begin_fill(), end_fill(), color())。能够综合运用循环、判断和函数绘制有规律的组合图形。
过程与方法:
- 经历从简单图形到复杂图案的构建过程,培养分治思想和模块化设计能力。
- 通过参数调整探索图形变化规律,体验创造性编程的乐趣。
情感态度与价值观:
- 感受数学规律与艺术创作的完美结合,提升审美素养。
- 培养耐心、细致的编程习惯和创新思维。
二、 教学重点与难点
教学重点:嵌套循环的逻辑设计;色彩填充的使用方法。
教学难点:复杂图形中循环变量的关系分析;填充边界的正确控制。
三、 教学准备
教师:安装Python环境的电脑、投影设备、教学课件(展示优美图形)。
学生:电脑已安装Python环境,已掌握Turtle基本命令和单层循环。
四、 教学过程
(一) 艺术导入:从简单到复杂的图形之美(5分钟)
教师活动:
- 展示一组图形:单个三角形 → 旋转的三角形组合 → 彩色的同心圆图案 → 复杂的万花筒效果。
- 提问:”这些美丽的图案看起来复杂,但实际上都是由简单图形变化而来的。猜猜看,它们是怎么画出来的?”
- 揭示秘密:”这些图案都运用了图形变换的规律:重复、旋转、缩放。今天我们就用嵌套循环和色彩填充来创造属于自己的数字艺术!”
设计意图:通过视觉冲击激发兴趣,明确学习目标。
(二) 基础技能:色彩填充(10分钟)
1. 填充颜色的基本方法
教师讲解:Turtle提供了简单的填充功能,只需要三个步骤:
python
import turtle as t
pen = t.Turtle()
pen.speed(5)
# 开始填充(设置填充颜色)
pen.fillcolor(“lightblue”) # 设置填充色
pen.begin_fill() # 开始记录填充边界
# 绘制封闭图形(如三角形)
for i in range(3):
pen.forward(100)
pen.left(120)
# 结束填充
pen.end_fill() # 填充刚才绘制的封闭区域
t.done()
2. 同时设置画笔色和填充色
使用color()函数:
python
# 设置画笔颜色为红色,填充颜色为黄色
pen.color(“red”, “yellow”)
pen.begin_fill()
# 绘制图形…
pen.end_fill()
3. 学生实践:绘制一个填充颜色的正方形和五角星。
(三) 核心技能:嵌套循环绘制组合图形(20分钟)
应用1:同心圆系列
python
import turtle as t
pen = t.Turtle()
pen.speed(10)
pen.pensize(2)
# 定义半径列表
radii = [20, 40, 60, 80, 100]
colors = [“red”, “orange”, “yellow”, “green”, “blue”]
for i in range(len(radii)):
pen.penup()
pen.goto(0, -radii[i]) # 移动到圆的底部起始点
pen.pendown()
pen.color(colors[i])
pen.begin_fill()
pen.circle(radii[i]) # 画圆
pen.end_fill()
t.done()
应用2:旋转三角形组合
python
import turtle as t
pen = t.Turtle()
pen.speed(0) # 最快速度
pen.pensize(1)
# 绘制36个旋转的三角形
for i in range(36): # 外层循环:控制旋转次数
# 设置颜色(HSV色彩循环效果)
hue = i / 36
pen.color(t.hsv_to_rgb(hue, 1.0, 1.0))
pen.begin_fill()
for j in range(3): # 内层循环:画一个三角形
pen.forward(80)
pen.left(120)
pen.end_fill()
pen.left(10) # 每次旋转10度
t.done()
代码分析:
- 外层循环:控制图形重复的次数和旋转角度。
- 内层循环:负责绘制每个基本图形(三角形)。
- 循环变量关系:外层循环变量i决定旋转位置和颜色变化。
(四) 复杂图形设计:参数化创意(15分钟)
应用3:彩虹螺旋
python
import turtle as t
import math
pen = t.Turtle()
pen.speed(0)
t.bgcolor(“black”) # 设置黑色背景
pen.pensize(2)
# 绘制彩虹螺旋
for i in range(200): # 绘制200个三角形
# 颜色渐变(从红色到紫色)
hue = i / 200 * 0.8 # 控制色相变化范围
pen.color(t.hsv_to_rgb(hue, 1.0, 1.0))
# 绘制一个三角形
for j in range(3):
pen.forward(i * 0.5) # 边长逐渐增加
pen.left(120)
pen.left(11) # 每次旋转11度
t.done()
应用4:对称雪花图案
python
import turtle as t
def draw_branch(length):
“””绘制一个雪花分支”””
if length < 5: # 递归终止条件
return
else:
pen.forward(length)
pen.left(45)
draw_branch(length * 0.6) # 递归绘制小分支
pen.right(90)
draw_branch(length * 0.6) # 递归绘制另一侧小分支
pen.left(45)
pen.backward(length)
pen = t.Turtle()
pen.speed(0)
pen.color(“cyan”)
pen.pensize(2)
t.bgcolor(“darkblue”)
# 绘制6个方向的雪花
for i in range(6):
draw_branch(50) # 绘制分支
pen.right(60) # 旋转60度
t.done()
(五) 调试技巧与优化建议(5分钟)
调试技巧:
- 分步测试:先测试内层循环,再添加外层循环。
- 打印变量:在循环内添加print(i, j)查看循环执行情况。
- 降低速度:调试时设置pen.speed(1)便于观察。
优化建议:
- 使用函数:将常用图形定义为函数,提高代码复用性。
- 参数化设计:使用变量控制图形大小、颜色、数量等。
- 数学公式:运用正弦、余弦函数创建更复杂的曲线。
(六) 创意实践与作业(5分钟)
课堂实践:
- 修改旋转三角形的代码,创建8个旋转的正方形。
- 尝试改变同心圆的颜色序列,创造不同的视觉效果。
作业:
- 基础题:绘制一个”彩色风车”,由8个不同颜色的等腰三角形组成。
- 挑战题:创作一个”数学玫瑰曲线”(r = a × cos(nθ)),通过调整参数n观察不同的花瓣效果。
五、 教学资源
色彩参考:提供常用颜色名称表(red, blue, green, gold, purple等)
数学公式:提供常用的图形变换公式
优秀案例:展示学生可能创作出的图形效果
六、 板书设计
主标题:图形的组合与变换
填充语法:
python
begin_fill()
# 绘制封闭图形
end_fill()
嵌套循环结构:
python
for i in range(外层次数):
for j in range(内层次数):
# 绘制基本图形
# 图形变换(旋转/平移)
设计模式:
- 同心模式:改变大小,位置不变
- 旋转模式:图形不变,角度变化
- 螺旋模式:大小和角度同时变化