教案:图形的组合与变换

教案基本信息

课程名称:Python编程第十三课 图形的组合与变换
授课对象:有一定Python基础的学生(已掌握基础Turtle绘图、循环)
课时安排:45分钟
教学形式:理论讲解 + 实践操作

一、 教学目标

知识与技能:

  1. 数学知识: 理解图形平移、旋转、缩放等变换概念;认识同心、对称等几何关系。
  2. 编程知识:掌握嵌套循环在复杂图形绘制中的应用。学会使用Turtle的色彩填充功能(begin_fill(), end_fill(), color())。能够综合运用循环、判断和函数绘制有规律的组合图形。

过程与方法:

  1. 经历从简单图形到复杂图案的构建过程,培养分治思想和模块化设计能力。
  2. 通过参数调整探索图形变化规律,体验创造性编程的乐趣。

情感态度与价值观:

  1. 感受数学规律与艺术创作的完美结合,提升审美素养。
  2. 培养耐心、细致的编程习惯和创新思维。

二、 教学重点与难点

教学重点:嵌套循环的逻辑设计;色彩填充的使用方法。

教学难点:复杂图形中循环变量的关系分析;填充边界的正确控制。

三、 教学准备

教师:安装Python环境的电脑、投影设备、教学课件(展示优美图形)。

学生:电脑已安装Python环境,已掌握Turtle基本命令和单层循环。

四、 教学过程

(一) 艺术导入:从简单到复杂的图形之美(5分钟)

教师活动:

  1. 展示一组图形:单个三角形 → 旋转的三角形组合 → 彩色的同心圆图案 → 复杂的万花筒效果。
  2. 提问:”这些美丽的图案看起来复杂,但实际上都是由简单图形变化而来的。猜猜看,它们是怎么画出来的?”
  3. 揭示秘密:”这些图案都运用了图形变换的规律:重复、旋转、缩放。今天我们就用嵌套循环和色彩填充来创造属于自己的数字艺术!”

设计意图:通过视觉冲击激发兴趣,明确学习目标。

(二) 基础技能:色彩填充(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()

代码分析:

  1. 外层循环:控制图形重复的次数和旋转角度。
  2. 内层循环:负责绘制每个基本图形(三角形)。
  3. 循环变量关系:外层循环变量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分钟)

调试技巧:

  1. 分步测试:先测试内层循环,再添加外层循环。
  2. 打印变量:在循环内添加print(i, j)查看循环执行情况。
  3. 降低速度:调试时设置pen.speed(1)便于观察。

优化建议:

  1. 使用函数:将常用图形定义为函数,提高代码复用性。
  2. 参数化设计:使用变量控制图形大小、颜色、数量等。
  3. 数学公式:运用正弦、余弦函数创建更复杂的曲线。

(六) 创意实践与作业(5分钟)

课堂实践:

  1. 修改旋转三角形的代码,创建8个旋转的正方形。
  2. 尝试改变同心圆的颜色序列,创造不同的视觉效果。

作业:

  1. 基础题:绘制一个”彩色风车”,由8个不同颜色的等腰三角形组成。
  2. 挑战题:创作一个”数学玫瑰曲线”(r = a × cos(nθ)),通过调整参数n观察不同的花瓣效果。

五、 教学资源

色彩参考:提供常用颜色名称表(red, blue, green, gold, purple等)

数学公式:提供常用的图形变换公式

优秀案例:展示学生可能创作出的图形效果

六、 板书设计

主标题:图形的组合与变换

填充语法:

python

begin_fill()

# 绘制封闭图形

end_fill()

嵌套循环结构:

python

for i in range(外层次数):

    for j in range(内层次数):

        # 绘制基本图形

    # 图形变换(旋转/平移)

设计模式:

  1. 同心模式:改变大小,位置不变
  2. 旋转模式:图形不变,角度变化
  3. 螺旋模式:大小和角度同时变化

您可能还喜欢...