2. 教学设计
第23讲 会画画的海龟Ⅰ
1.教学内容分析
本节内容首先情境带入,引出海龟绘图功能;随后,以Python编程软件为辅助,讲解海龟绘图常用程序和参数设置;之后,开展实践任务,以正方形画圆为例,熟悉对海龟绘图功能的使用;然后,思维拓展,讲解颜色空间可RGB模型基础知识,最后,能力提升,通过Python程序画出国际象棋棋盘,加深对相关知识的领悟。
2.学习者分析
1.学生具有一定的Python编程语言基础;
2.学生已经掌握一些基础的绘图操作;
3.学生具备一定的逻辑推理能力,知识迁移能力,对人工智能的技术有较强的学习兴趣。
3.学习目标确定
1.知识与技能:
①学生能够了解 Python 自带 turtle 库的功能及基本用法;
②学生能够掌握 turtle 库的导入方法,运用 turtle 库编写绘图程序;
③学生能够认识了解颜色及RGB模型等理论知识。
2.过程与方法:
①通过学习turtle的功能及基本用法,体会人工智能设计和编程魅力;
②通过项目的编程练习,培养学生设计能力和举一反三的能力。
3.情感态度与价值观:
①养成自主学习、自主探究的能力;
②培养发现问题、解决问题的探究能力;
③通过对项目的讨论、分析、制作等活动,培养严密的逻辑思维能力。
4.教学重点难点
教学重点:1. 熟练运用 turtle 库编写绘图程序;
2. 掌握画笔的前进、后退、左右转、提落笔、画点、画圆等基本用法。
教学难点:1.利用turtle绘图功能完成正方形画圆的操作;
2.灵活运用软件完成项目的制作。
5.教学流程图

6.教学活动
环节一:(情境导入)5min |
教学活动1
1.教师讲授情境故事,设置悬念,吸引学生兴趣;(教师播放PPT)
教师:“1968年,麻省理工学院西蒙·派珀特博士( Seymour Papert)发明了一种专门给儿童学习编程的语言——LOGO语言,它的特色就是通过编程指挥一个小海龟( turtle)在屏幕上绘图。在LOGO的世界里,人们可以通过编程输入指令,让那只海龟在画面上走动,可以向左、向右、向上、向下,或是按照程序设定的角度进行移动。还可以让小海龟以加速或减速的方式移动,也可以让小海龟重复某一个动作。派珀特发明LOGO编程语言,就是为了让孩子也能用使用计算机做点有意义的事情。 LOGO编程语言简单易学,海龟画图也非常有趣,孩子们一天就能学会。在简单的海龟画图指令的基础上,结合条件、循环、迭代等程序设计方法,可以绘制出更美的画面,如人物、动物、房子、汽车、抽象图案等,同学们,你们想不想尝试一下,怎么通过Python指挥小海龟画图呀!”
学生聆听情境故事,积极回应老师,对turtle画图产生兴趣;
教师:“好的,同学们,当我们在用Python编程时,只需要通过import turtle方法导入turtle库,就可以在程序中使用海龟作图功能了。同学们,今天我们的学习将分成三个模块,第一个模块,学习Turtle绘图的一些基本程序和参数设置;第二个模块,一起完成用正方形画圆的实践任务;第三个模块,思维拓展,学习一下绘图相关的理论知识。”
学生聆听教师讲授。
|
活动意图说明: 通过情境故事吸引学生的注意力,激发学生的学习兴趣,导入本节课的内容----会画画的海龟。 |
环节二:(原理讲解)20min |
教学活动2
1.讲解Turtle绘图的画布程序及参数设置等;
教师:“画布( canvas)就是turtle中用于绘图的工作区域,绘图前一般需要设置画布的初始位置和区域大小。首先设置画布,使用turtle.screensize(canvwidth=None,canvheight=None,bg=None)方法设置画布大小。其中,参数canvwidth表示画布的宽(单位为像素),参数canvheight表示画布的 高,参数bg表示画布的背景颜色。例如:turtle.screensize(800,600,"green")#表示设置画布大小为( 800,600)像素区域,背景为绿色。还可以使用turtle.setup(width=None, height=None,startx=None,starty=None)方法设置画布大小。当参数width和height的值为整数时,表示以像素为单位的宽和高的大小。 当参数width和height的值为小数时,则表示画布占据计算机屏幕的比例。参数startx和starty表示画布区域左上角顶点的位置,如果为空,则表示画布位于屏幕中心;其次,画布的默认大小,不对画布作初始设置,则表示采用默认的画布大小和位置。设置画布是,相应参数为空,也表示采用默认的画布设置。画布的默认大小为(400,300),默认位于屏幕中心。”
学生聆听教师讲解Turtle绘图的画布程序及参数设置,并播放PPT,进行操作演示;
2.讲解Turtle绘图的绘图坐标系及参数设置等;
教师:“首先是画布坐标系,海龟作图的坐标系和数学中的平面直角坐标系一样,初始点均为(0,0),处于画布正中间。画布上的画图过程中,运动中画笔的坐标参考下图中以x轴与y轴为指向的平面直角坐标系,其次是屏幕坐标系,屏幕坐标系是指在计算机或手机的屏幕上绘图或显示信息时使用的坐标系,以像素为单位。屏幕坐标系中,屏幕最左上方像素的坐标定为(0,0), X轴从左往右递增, Y轴从上往下递增,如图23-3所示。 X、 Y的像素值取决于显示器的分辨率。以1024×768的分辨率为例, X的值在0~1024, Y的值在0~768。最后,画布坐标系与屏幕坐标系的关系,画布是在整个屏幕中划分出来的一个显示区域,了解画布在屏幕中的相对位置有助于设计程序的运行界面。画布坐标系与屏幕坐标系的关系如图23-4所示,以turtle.setup(width,height,startx, starty)设 置 方 法 为 例, 图 中 标 识 了width、 height、 startx、starty参数在与屏幕坐标系中的位置”
学生聆听教师讲解Turtle绘图的坐标系及参数设置,并播放PPT,进行操作演示;
3.讲解Turtle绘图的画笔及参数设置等;
教师:“首先,画笔的形状,在画布坐标系中,画布中心为坐标原点。画笔的默认位置就在坐标原点,默认方向朝着x轴的正方向,默认形状是一只小乌龟。 turtle绘图中,可以使用turtle.shape(name=None)方法改变画笔的形状。画笔的形状库TurtleScreen中,提供有arrow、 turtle、circle、 square、 triangle、 classic等形状供编程使用。在交互式环境下,依次执行turtle.shape("arrow")、 turtle.shape("turtle")、 turtle.shape("circle")、 turtle.shape("square")、turtle.shape("triangle")、turtle.shape("classic")等语句,得到的小海龟形状分别显示如图所示;其次,画笔的属性,turtle绘图中,可能需要对画笔的属性,如颜色、画线的宽度、画笔移动速度等属性进行设置,turtle.pensize():设置画笔的宽度; turtle.speed(speed): 设置画笔移动速度,画笔绘制的速度范围为[0, ∞ ],取整 数,数字越大越快,turtle.pencolor():设置画笔的颜色,没有参数传入,返回当前画笔颜色,传入参数则改变画笔的颜色。turtle.pencolor(colorstring)是常用功能,传入的参数可以是颜色关键词,如字符串"red"、” green”、 "blue"等,也可以是一个RGB 3元组pencolor(r, g, b)。可供画笔设置的颜色种类丰富”
学生聆听教师讲解Turtle绘图的画笔及参数设置,并播放PPT,进行操作演示;
4. 讲解Turtle绘图的基本绘图控制知识等;
教师:“绘图窗口的原点(0,0)在画布正中间。默认情况下,海龟初始的状态是准备向正右方移动。从坐标原点(0,0)位置开始,海龟根据一组指令进行控制,在画布平面坐标系中移动,在它运动的路径上绘制出了图形。首先是前后移动,turtle.forward(distance)函数用来控制画笔向当前行进方向前进一个距离,即小海龟向前移动指定的距离。distance参数为行进距离的像素值,当值为负数时,表示向相反方向前进。编程时,可以使用别名turtle.fd(distance)。turtle. backward (distance)函数用来控制画笔向当前行进方向的反方向移动一个距离,即小海龟向后移动指定的距离。编程时,可以使用别名turtle.back(distance)或turtle.bk(distance),其次是左右移动,turtle.left(angle) 函数用来控制画笔在当前行进方向朝左转一个角度,即让小海龟朝左转弯一个角度。 angle参数为角度的整数值。编程时,可以使用别名turtle.lt(angle)。turtle.right(angle) 函数用来控制画笔在当前行进方向朝右转一个角度,即让小海龟朝右转弯一个角度。编程时,可以使用别名turtle.rt(angle)”
学生聆听教师讲解Turtle绘图的基本绘图控制等相关知识,并播放PPT,进行操作演示;
5. 讲解利用Turtle绘图画基本图形等内容;
教师:“首先画直线,使用turtle 基本控制命令forward,可以绘制出直线,程序示例及结果如图所示;然后画三角形,等边三角形内角和为180°,每个内角均为60°,各外角为120°,且三条边长度相等。利用turtle库里面的turtle.fd()函数绘制等边三角形的各个边,利用turtle.seth()函数设置从一条边到下一条边所需旋转的角度,即依次转动的角度为: 0°、 120°、 240°,就可绘制出等边三角形,程序示例及结果如图所示;然后画长方形,海龟绘图就是指挥海龟前进、转向,海龟移动的轨迹就是绘制的线条。要绘制一个长方形,只需要让海龟前进、右转90度,反复4次。调用width()函数可以设置笔刷宽度,调用pencolor()函数可以设置颜色。绘图完成后,记得调用done()函数,让窗口进入消息循环,等待被关闭。否则,由于Python进程会立刻结束,将导致窗口被立刻关闭,程序示例及结果如图所示;最后画五边形,正五边形的五个边等长且五个内角等角,各内角均为108度,对应的外角为72度。根据边与边之间的等长及夹角特性,可以画出正五边形图案。利用turtle库里面的turtle.fd()函数绘制正五边形的各个边,利用turtle.seth()函数设置从一条边到下一条边所需旋转的角度,即每次转动的角度均为720°,就可绘制出五边形,程序示例及结果如图所示;随机改变画笔的颜色,可以得到美丽的五边形图案,程序示例及结果如图所示。”
学生聆听教师讲解Turtle绘图的基本绘图控制等相关知识,并播放PPT,进行操作演示。 |
活动意图说明 配合PPT和Python编程语言进行讲解,让学生从亲身经验中体会海龟绘图的相关操作知识。 |
环节三:(项目制作)25min |
教学活动3
教师带领学生借助软件完成利用正方形画圆的制作;
教师:“生活中,可以利用正方形绕一个顶点运动的方式得到圆形。利用这种思想,通过编程不断绘制绕一个顶点旋转的正方形,就可以得到很逼近圆的轮廓。首先,正方形绕定点转动的实现,LOGO的海龟画图教学里就提供了类似的案例,绘出一个正方形,然后让正方形绕它的一个顶点(如左上角)固定旋转10度,依次绘出每次旋转后的图形。旋转完一周后,就会初步形成圆的轮廓;程序与结果如图,可以看出,初步形成了1个圆的形状,但是圆的轮廓很粗糙;其次,增加旋转正方形的数量,每隔10度旋转依次正方形,得到的圆的轮廓很粗糙,不逼真。可以在上述编程的基础上,尝试进一步减小旋转的角度,大幅增加正方形的数量。实际编程可以设定每隔3度旋转一次正方形,正好绘制出120个完整的正方形,程序及结果如图,可以看出,初步形成了2个圆的形状,而且圆的轮廓得到很大改善;最后,进一步逼近得到圆形,进一步增加旋转正方形的数量,先利用turtle库绘制出正方形,然后每次绕某个顶点旋转1度,再绘制出同样大小的正方形。连续循环360度,就能够形成很逼近圆的轮廓,程序及结果如图,得到十分漂亮规则的图案。”
教师操作Python编程语言,并讲解正方形画圆的步骤;
学生聆听教师讲解利用Python完成正方形画圆的步骤;
教师讲解完成后,教师可留给学生5min时间让学生自己操作学习;
|
活动意图说明 屏幕共享,教师演示操作,培养学生动手操作能力,让学生直观学习编程设计过程,掌握逻辑结构。 |
环节四:(思维拓展)10min |
教学活动4
1. 教师讲解颜色空间等理论知识;
教师:“光的颜色由不同波长的电磁波所决定。人的眼睛内有几种辨别颜色的锥形感光细胞,分别对黄绿色、绿色和蓝紫色(或称紫罗兰色)的光最敏感(波长分别为564、 534和420纳米)。颜色常用颜色空间来表示。颜色空间是用一种数学方法形象化表示颜色,人们用它来指定和产生颜色”
学生认真聆听教师讲解颜色空间理论知识;
1. 教师讲解RGB模型相关知识
教师:“自然界中任何一种色光都可由R、 G、 B三基色按不同的比例相加混合而成,当三基色分量都为最弱时混合为黑色光,当三基色分量都为最强时混合为白色光,如图23-17所示。在RGB模型的三维直角坐标系中, x、 y、 z轴相当于红、绿、蓝三通道,原点为(0, 0,0)代表黑色,顶点为(1, 1, 1)代表白色,原点到顶点的中轴线x = y = z代表灰度线。任一颜色F是这个立方体坐标中的一点,调整三色系数r、 g、 b中的任一系数都会改变F的坐标值,也即改变了F的色值;RGB模型采用物理三基色表示,是计算机系统中的最常用的表示方法,它采用R、G、B三种基本颜色以及它们的叠加组成各式各样的颜色。将RGB以不同的比例混合后,人的眼睛可以形成与其他各种频率的可见光等效的色觉。 Python中, RGB颜色可以采用( r,g, b)元组来表示,其中,每个颜色分量使用8位表示,取值范围是[0, 255]。”
学生认真聆听教师讲解RGB模型的相关知识。 |
活动意图说明 增加学生绘图理论知识的积累,培养学生发散思维。 |
环节五:(展示小结)5min |
教学活动5
1.学生发言,展示作品,进行逻辑代码讲解;
2.教师对学生作品进行评价;
教师:“同学们,在看了大家的作品后,老师觉得大家都完成的非常好,老师给同学们一个大大的赞。”
3.总结本节课的知识内容,巩固本节课的知识点,铺垫下一节课。
|
教学活动6
1.教师讲解国际象棋棋盘知识;
教师:“国际象棋棋盘是个正方形,由横纵各8格、颜色一深一浅交错排列的64个小方格组成。深色格称黑格,浅色格称白格,棋子就放在这些格子中移动,右下角是白格。 8条直线从白方左边到右边分别用小写字母a、 b、 c、 d、 e、 f、 g、 h表示。 8条横线从白方到黑方分别用数字1、 2、 3、 4、 5、 6、 7、 8表示。”
学生认真聆听教师讲解国际象棋棋盘知识;
2.利用所学知识,绘制国际象棋棋盘;
教师:“同学们,我们已经完成了利用正方形画圆的任务,现在,你们尝试使用turtle库,编写Python程序画出国际象棋棋盘吧!要求棋盘为正方形,由64个黑白相间的格子组成,横纵各8格” |
活动意图说明 通过项目式学习的体验效果,让学生可以更直接的体验Python编程的应用,提高学生的参与感。 |
7.板书设计
会画画的海龟Ⅰ
1.海龟绘图:
画布:设置画布、画布默认大小
绘图坐标系:画布坐标系、屏幕坐标系
画笔:形状、属性
绘图控制:前后移动、左右移动
绘基本图形:直线、三角形、长方形、五边形
2.正方形画圆,增加正方形数量,减小旋转角度
3.颜色空间和RGB模型
8.作业与拓展学习设计
使用turtle库,编写Python程序画出如图所示的国际象棋棋盘