巧妙的套用 ——重复命令的嵌套 刘林波
一、仔细观察下图,小海龟能画出来吗? 当然行,用重复命令就可以实现 一组重复命令能画出一个简单的图形,把简单的图形在重复,就能画出复杂的图形来。
(1) 单个图形的旋转 观察图中的“风车”,组成这样的“风车”的基本图形是什么?有几个这样的基本图形?“风车”是怎样画出来的? 2 3 4 提示:步长(80步)宽(20步) 仔细思考哦
分析 第一种方法: “风车”是由____个长方形组成的,每画完一个长方形,向___旋转____度,再画下一个长方形,这样进行___次。画长(80步)和宽(20步)的长方形命令: 4 右 90 4 Repeat 2 [ fd 80 rt 90 fd 20 rt 90] rt 90 Repeat 2 [ fd 80 rt 90 fd 20 rt 90] rt 90 Repeat 2 [ fd 80 rt 90 fd 20 rt 90] rt 90 Repeat 2 [ fd 80 rt 90 fd 20 rt 90] 你发现了什么? rt 90
Repeat 4 [ repeat 2 [ fd 80 rt 90 fd 20 rt 90] rt 90 ] 重复次数(图形个数) 画基本图形长方形 360/图形个数 概念:在logo语言中,重复命令里面又套用重复命令,叫做重复命令的嵌套。嵌套的时候,每层重复都有自己的重复次数,每层各有一对中括号。 概念要记住哦
单个图形的旋转就是把单个图形用旋转方法画出复杂的图形,用重复命令比较简洁。我们可以得到这样一个规律: (1)最内层的重复语句绘制单个图形,每完成单个图形转360/单个图形个数。 (2)外层重复的次数就是要绘制单个图形的个数。 Repeat 重复次数[绘制单个图形命令Rt(Lt) 360/图形个数] 试一试: (1) 旋转,画8个长方形,如右图所示 8个长方形 8 Repeat ___[ repeat 2[ fd 80 rt 90 fd 20 rt 90] ____] Rt 45
显身手:下图是用 30个正方形重复旋转画出来的,试试看,你能画出来吗? (2) 旋转,画3个三角形,如 右图所示 3个三角形 显身手:下图是用 30个正方形重复旋转画出来的,试试看,你能画出来吗? 30 4 repeat __[ repeat __ [fd 80 rt 90 fd 80 rt 90 ] rt __ ] 12 30个正方形 画出来了吗?
(2)多个图形的嵌套 利用重复命令的嵌套,不仅能画出单个图形的旋转图形,还可使单个图形进行不同的旋转和移动,从而画出奇妙的图形来。 贝贝设计了下面两组重复命令: (1)重复命令画五角星: repeat 5 [ fd 20 rt 144] (2)重复命令画六边形: repeat 6 [ fd 40 rt 360/6] 五角星 试着把画五角星命令插到画六边形的命令中,分别插在(1)、( 2)、(3)三个不同的位置上,比较产生的不同效果。 Repeat 6 [ (1) fd 40 (2) rt 360/6 (3) ] 将画五角星的命令插入位置(1),便得到: 六边形 Repeat 6 [ repeat 5 [ fd 20 rt 144] fd 40 rt 360/6 ] 运行此命令得到下图: 试试看 将五角星插到(1)位置
运行上述命令过程:首先是执行重复命令5次画出五角星,接着前进40 步、右转60度,然后重复这些操作6次,便画出图形。 试一试 分别写出将五角星命令插入其他位置的命令,运行命令,看能画出什么图形,并描述这样的图形是怎样画出的。 Repeat 6 [ fd 40 repeat 5 [ fd 20 rt 144 ] rt 360/6 ] 插入位置(2) ____________________________________ 将五角星插到位置(2) Repeat 6 [ fd 40 rt 360/6 repeat 5 [ fd 20 rt 144] ] 插入位置(3) ————————————————— 将五角星插到位置(3) 你做对了吗?
小妙招 输入命令时,使用Logo菜单edit (编辑)中的copy(复制)、paste(粘贴)方法,可以帮我们节省使用键盘输入的时间。 显身手 你能修改贝贝的两组重复命令的步长和插入方式,用嵌套的方法画出下面的图形吗? (1)正六边形嵌套到五角星 (2)五角星嵌套到五角星 五角星三重嵌套 (1)repeat 5 [fd 100 repeat 6 [fd 20 rt 360/6 ] rt 144] (2)repeat 5 [ fd 100 repeat 5 [fd 20 rt 144] rt 144] (3)repeat 5 [ fd 125 repeat 5 [fd 40 repeat 5 [fd 10 rt 144 ] rt 144 ] rt 144] 你画出来了吗?